萌卡NT × 小韭菜 桥接网关完整部署教程(含小韭菜补丁)

小韭菜网页登录(模拟 dulu 框架)与萌卡NT框架的桥接网关完整部署教程。用户在小韭菜前台选择节点登录时,桥接把登录请求转发给萌卡,实现 QQ 网页扫码/密码登录。本教程面向宝塔服务器,纯小白友好,涵盖小韭菜端全部改动(补丁替换 + 后台添加节点 + 数据库说明)。

〇、架构原理(先看这个,后面才不迷糊)

这套系统一共有 3 个角色:

  • ① 小韭菜——用户网页登录页(已部署好的)
  • ② 桥接网关 server.js——端口 35298,负责登录/出码/下线/验证(本教程要部署的)
  • ③ 萌卡NT 框架——WS 端口 35297 + 管理端 7878,QQ 账号实际登录

大白话:小韭菜只会跟”dulu 框架”说话,萌卡只会说自己的话。桥接网关是翻译官:小韭菜把登录请求发给桥接(端口 35298),桥接翻译成萌卡听得懂的话(WS 端口 35297),让萌卡把 QQ 登上去,再把结果翻译回给小韭菜。

整个教程一共要做 4 件事:① 部署桥接 ② 自检 ③ 给小韭菜打补丁(2 个文件) ④ 后台加节点。做完这 4 步,用户就能在前台登录了。

一、准备工作

1.1 必须满足的前提(3 个,缺一个都装不了)

  • 一台 Linux 服务器(已装宝塔面板,软件商店里有 Node.js 16+ 和 Python3)
  • 萌卡NT 框架已部署并能正常扫码登录 QQ(装桥接前先验证萌卡能用)
  • 小韭菜已部署(能打开前台登录页)

注意:如果萌卡和小韭菜还没装:先去宝塔把这两个装好、跑通,再回来继续本教程。桥接只是”翻译官”,不能替代框架本身。

1.2 需要提前收集的信息(4 项,后面都会用到)

信息 在哪里找 后面填到哪
萌卡 WS 令牌 萌卡后台 → 系统设置 → WebSocket 接口 → 令牌 server.js → mkgoToken
萌卡管理员账号/密码 萌卡 WebUI 后台的登录账号密码 server.js + mkgo_admin.py
萌卡默认节点编号 萌卡后台 → 节点管理(装完桥接也能在 /nodes 页查) server.js → nodeId
萌卡管理端端口 萌卡配置文件 config.yaml 里 server.port(默认 7878) server.js → adminBase(默认不用改)

这 4 项全部在萌卡后台/配置文件里能找到,小韭菜那边暂时不用动。

二、部署桥接网关(核心步骤)

2.1 上传部署包

下载部署包 mkgo-bridge_v1.1_deploy.zip,在本地解压,你会看到:

mkgo-bridge-deploy/
├── server.js              # 桥接主程序(要改配置)
├── mkgo_admin.py          # 萌卡后台自动登录脚本(要改账号密码)
├── package.json           # Node 依赖
├── mkgo-bridge.service    # 系统服务文件
├── install.sh             # 一键安装脚本
├── cleanup.js             # 测试辅助(不用管)
├── README.md              # 快速说明
├── patch/                 # ★ 小韭菜补丁(第四步用)
│   ├── ajax_bot.php       # 扫码登录直连桥接
│   ├── ajax.php           # 在线状态实时化
│   └── 补丁说明.txt
└── docs/部署教程.html      # ★ 本教程

宝塔 → 文件 → 进入 /www/wwwroot/ → 把整个 mkgo-bridge-deploy 文件夹上传上去(直接传 zip 后右键解压也行)。

2.2 修改配置(只改 6 处,其他别动)

第一处:用宝塔编辑器打开 /www/wwwroot/mkgo-bridge-deploy/server.js,找到顶部 CONFIG 配置区:

const CONFIG = {
    httpPort: 35298,                       // ① 网关端口,默认不用改
    mkgoWs: 'ws://127.0.0.1:35297',        // ② 萌卡WS地址,同机默认
    mkgoToken: '在此填写萌卡WS令牌',        // ③ 必改!萌卡后台 WebSocket 令牌
    nodeId: 1,                              // ④ 必改!萌卡默认节点编号
    deviceProfileId: 1,                     // 设备指纹ID,默认1
    protocolId: 0,                          // 协议ID,0=自动
    clientType: 'android',                  // 默认协议
    logFile: '/www/wwwroot/mkgo-bridge/bridge.log',
    adminBase: 'http://127.0.0.1:7878',    // 萌卡管理端REST,默认不用改
    adminUser: '在此填写萌卡后台管理员账号',  // ⑤ 必改!萌卡WebUI账号
    adminPass: '在此填写萌卡后台管理员密码',  // ⑥ 必改!萌卡WebUI密码
    adminScript: '/www/wwwroot/mkgo-bridge/mkgo_admin.py',
    secretSalt: 'jiucai2026',               // Linux账号密码盐,可改成你自己的
};

要改的就是带 ③④⑤⑥ 标记的 4 行(WS 令牌、节点编号、管理员账号、管理员密码),其余保持默认。改完保存。

第二处:打开 mkgo_admin.py,找到第 9~12 行,把管理员账号密码也改成萌卡后台的(和上面保持一致):

BASE = os.environ.get('MKGO_ADMIN_BASE', 'http://127.0.0.1:7878')
USER = os.environ.get('MKGO_ADMIN_USER', '在此填写萌卡后台管理员账号')  # 改这里
PASS = os.environ.get('MKGO_ADMIN_PASS', '在此填写萌卡后台管理员密码')  # 改这里

2.3 一键安装

宝塔 → 终端(或 SSH 登录服务器),依次输入:

cd /www/wwwroot/mkgo-bridge-deploy
bash install.sh

看到下面这样的输出就是成功(脚本会自动装 Python/Node 依赖、注册成开机自启服务):

[OK] Node.js: v18.x.x
[OK] Python3: 3.x.x
[OK] Python 依赖就绪
[OK] Node 依赖就绪
[4/4] 服务已启动
================ 自检 ================
{"code":0,"data":[ ... ],"count":1}   ← 返回这个就是成功

如果报”未检测到 Node.js”:先去宝塔软件商店安装 Node.js(16 以上版本),再重新运行 install.sh。

三、桥接自检(3 条命令确认装好了)

3.1 服务是否在运行

systemctl status mkgo-bridge

看到 active (running) 绿色字样即正常。

3.2 桥接是否连上萌卡(最重要)

curl http://127.0.0.1:35298/get_bot_list

返回 {“code”:0,”data”:[…]} = 桥接已连上萌卡,成功!

如果返回”认证失败”或一直连不上:WS 令牌填错了 → 检查 server.js 的 mkgoToken → 改完执行 systemctl restart mkgo-bridge。

3.3 查看运行日志

tail -f /www/wwwroot/mkgo-bridge/bridge.log

正常会滚动显示:萌卡认证成功、萌卡连接就绪。按 Ctrl+C 退出查看。

可选:浏览器打开 http://你的服务器IP:35298/nodes ,能看到一张”萌卡节点对照表”(编号/名称),以后查节点编号就用它。

四、给小韭菜打补丁(2 个文件,必须做)

为什么要做:小韭菜原版扫码登录是发给老框架接口的,萌卡收不到。补丁让小韭菜的扫码出码/在线状态直连桥接,萌卡才能收到登录请求。

注意:这一步在小韭菜的网站目录里操作。下面路径里的”你的小韭菜目录”要换成你实际的(比如 /www/wwwroot/xiaojiucai)。

4.1 先备份原文件(出问题能还原)

cd /www/wwwroot/你的小韭菜目录/user
cp ajax_bot.php ajax_bot.php.bak
cp ajax.php ajax.php.bak

4.2 用补丁文件覆盖

  1. 宝塔文件管理器进入 /www/wwwroot/mkgo-bridge-deploy/patch/
  2. 把 ajax_bot.php 复制到 /www/wwwroot/你的小韭菜目录/user/ ,选择覆盖
  3. 把 ajax.php 也复制过去覆盖
文件 作用
ajax_bot.php 扫码出码、扫码状态轮询直连桥接(Linux/安卓都能出码)
ajax.php 在线状态实时化(萌卡掉线,小韭菜立刻显示离线)

特别注意:这两个补丁文件默认按”桥接和萌卡同机、端口 35298″写的。如果你的桥接装在其他服务器/端口,需要把补丁文件里的 127.0.0.1:35298 改成你的桥接地址。

替换后前台报错?先恢复备份(把 .bak 文件改回原名覆盖),确认是你的小韭菜版本和补丁不兼容,再联系我们更新。

五、小韭菜后台添加节点(图形界面操作,自动写数据库)

这一步会在数据库 bot_loginconfig 表自动新增一条节点记录,不需要手写 SQL,后台点几下就完成。

5.1 打开节点管理页

  1. 浏览器登录小韭菜后台 → 找到「登录接口 / 接口管理」菜单(有些版本叫”节点管理”)
  2. 点击「添加登录接口 / 添加节点」按钮

5.2 按下表填写(共 6 项)

表单字段 填什么 说明
接口名称 如:萌卡-河北 用户在前台看到的节点名,随便起
业务 云端 或 代挂 根据你卖的业务选,代挂就选”代挂”
登录API http://你的服务器IP:35298 填桥接网关地址(重要!)
查询/代挂API 可留空 暂时不用
框架类型 dulu 必须选 dulu(桥接就是听 dulu 的话)
登录协议 安卓平板-推荐 或 Linux-电脑扫码 选一个当默认,用户登录时也可自选
接口分类 选一个分类 如”三端通用”,方便前台分组展示

填完先点「检测是否正常」,提示正常再保存。检测会请求桥接,如果桥接还没装好会失败——所以顺序是”先装桥接,再加节点”。

5.3 保存后发生了什么

保存后,数据库 bot_loginconfig 表会自动多一条记录,关键字段长这样(了解即可,不用自己操作):

-- bot_loginconfig 表新增记录
url     = http://你的服务器IP:35298   # 登录API → 桥接
type    = dulu                       # 框架类型
citybz  = 萌卡-河北                   # 节点显示名
biz     = dg                         # 业务(云端/代挂)

同时「登录协议」下拉里那些选项(安卓平板、Linux-电脑扫码)是 bot_protocol 表里的,萌卡支持的协议里面都有,用户登录时可以直接选。

保存后刷新小韭菜前台登录页,应该能看到”萌卡-河北”这个节点了。用户点它 → 输 QQ/扫码 → 登录成功。

六、登录测试(三种方式都验一遍)

6.1 安卓协议 · 密码登录

  1. 小韭菜前台 → 选”萌卡”节点 → 协议选安卓平板-推荐 → 输入 QQ 号和 QQ 密码 → 登录
  2. 首次登录该 QQ 时桥接会自动在萌卡创建账号并登录,成功后萌卡后台能看到该 QQ 在线

6.2 Linux 协议 · 扫码登录

  1. 小韭菜前台 → 选”萌卡”节点 → 协议选 Linux-电脑扫码 → 点「扫码登录」
  2. 页面弹出二维码(新 QQ 自动创建萌卡 Linux 账号,不用填密码)
  3. 手机 QQ 扫码 → 手机上确认 → 等待萌卡显示该 QQ 在线

6.3 下线

  1. 前台点「下线」,桥接会同时停掉 Linux 和安卓会话,萌卡账号变离线

验收清单(全部打钩才算装好):① 密码登录成功 ② Linux 扫码出码 ③ 扫码确认后上线 ④ 点下线变离线

七、多节点扩展(加北京/天津等节点)

以后在萌卡加新节点,前台自动多一个可选项。只需两步,不用改代码。

7.1 萌卡先添加节点

  1. 萌卡后台 → 节点管理 → 添加节点(如”北京”),萌卡加完就能用,什么都不用改

7.2 小韭菜后台加一条节点记录

  1. 小韭菜后台 → 登录接口 → 添加节点
  2. 节点 URL 填 http://你的服务器IP:35298/北京 —— 重点:斜杠后面写萌卡节点的名字
  3. 保存。前台登录页出现”北京”节点,用户选它就走北京节点

规律:萌卡有几个节点,小韭菜后台就加几条记录,URL 斜杠后面写上对应节点名(/北京、/天津…),完事。

7.3 URL 三种写法

节点 URL 写法 说明
http://IP:35298/北京 推荐!写节点名字,最好记
http://IP:35298/2 写节点编号(/nodes 页能查到)
http://IP:35298 什么都不写,走默认节点(server.js 的 nodeId)

注意:节点名必须和萌卡后台完全一致(如”直连”、”河北”),大小写和空格都要一样。

八、常见问题排查(按顺序查)

Q1:小韭菜前台提示”不支持的API”

节点 URL 没指向桥接。确认:后台节点 URL 是 http://IP:35298、框架类型是 dulu、防火墙放行了 35298 端口。

Q2:后台点「检测」失败 / 提示连接不上

桥接没装好或防火墙没放行。按第三章节自检:systemctl status mkgo-bridge、curl get_bot_list、宝塔防火墙放行 35298。

Q3:扫码提示”Linux出码失败”

桥接自动登录萌卡后台失败。检查 server.js 和 mkgo_admin.py 的管理员账号密码是否一致且正确 → systemctl restart mkgo-bridge → 看 bridge.log 有没有”萌卡认证成功”。

Q4:二维码出了,扫了也确认了,但没上线

萌卡该账号卡在”登录中”。等 1 分钟让萌卡自动处理,或萌卡后台手动对该账号点”停止”。反复卡住就检查服务器时间(date 命令),萌卡对时间同步敏感。

Q5:点下线没用,账号还在线

补丁没生效或没重启。确认第四步的 ajax.php 补丁已覆盖,且前台重新登录一次;桥接 v1.1 自带 /dulu_stop 下线接口。

Q6:桥接日志一直”正在连接萌卡WS”

萌卡 WS 没起来或端口不对。确认萌卡正在运行、mkgoWs 是萌卡实际 WS 端口(默认 35297)。

Q7:日志显示”认证失败”

mkgoToken 填错或过期。去萌卡后台「系统设置 → WebSocket 接口」重新复制令牌,更新 server.js 后重启。

Q8:前台看不到刚添加的节点

① 节点没保存成功(检测失败也会保存失败)② 前台缓存:强制刷新(Ctrl+F5)③ 节点分类没选对,前台隐藏了。

Q9:二维码图片手机扫不了/显示不出来

小韭菜前台要用 https 访问,浏览器允许加载 http 图片;或把桥接端口套上 SSL 反代(宝塔反向代理到 35298)。

Q10:替换补丁后前台报错/白屏

恢复备份:把 user/ 目录下的 ajax_bot.php.bak / ajax.php.bak 改回原名覆盖。确认你的小韭菜版本兼容后重试。

Q11:群消息刷屏 bridge.log

v1.1 默认只记录上线/下线/登录等关键事件,群消息不写日志,无需处理。

九、备份与更新

备份(改动任何配置前先做)

cp /www/wwwroot/mkgo-bridge/server.js /www/wwwroot/mkgo-bridge/server.js.bak_$(date +%s)
cp /www/wwwroot/mkgo-bridge/mkgo_admin.py /www/wwwroot/mkgo-bridge/mkgo_admin.py.bak

更新桥接

cp 新版server.js /www/wwwroot/mkgo-bridge/server.js
systemctl restart mkgo-bridge
tail -f /www/wwwroot/mkgo-bridge/bridge.log   # 看是否正常

卸载

systemctl stop mkgo-bridge && systemctl disable mkgo-bridge
rm -rf /www/wwwroot/mkgo-bridge
© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容