小韭菜网页登录(模拟 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 用补丁文件覆盖
- 宝塔文件管理器进入 /www/wwwroot/mkgo-bridge-deploy/patch/
- 把 ajax_bot.php 复制到 /www/wwwroot/你的小韭菜目录/user/ ,选择覆盖
- 把 ajax.php 也复制过去覆盖
| 文件 | 作用 |
|---|---|
| ajax_bot.php | 扫码出码、扫码状态轮询直连桥接(Linux/安卓都能出码) |
| ajax.php | 在线状态实时化(萌卡掉线,小韭菜立刻显示离线) |
特别注意:这两个补丁文件默认按”桥接和萌卡同机、端口 35298″写的。如果你的桥接装在其他服务器/端口,需要把补丁文件里的 127.0.0.1:35298 改成你的桥接地址。
替换后前台报错?先恢复备份(把 .bak 文件改回原名覆盖),确认是你的小韭菜版本和补丁不兼容,再联系我们更新。
五、小韭菜后台添加节点(图形界面操作,自动写数据库)
这一步会在数据库 bot_loginconfig 表自动新增一条节点记录,不需要手写 SQL,后台点几下就完成。
5.1 打开节点管理页
- 浏览器登录小韭菜后台 → 找到「登录接口 / 接口管理」菜单(有些版本叫”节点管理”)
- 点击「添加登录接口 / 添加节点」按钮
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 安卓协议 · 密码登录
- 小韭菜前台 → 选”萌卡”节点 → 协议选安卓平板-推荐 → 输入 QQ 号和 QQ 密码 → 登录
- 首次登录该 QQ 时桥接会自动在萌卡创建账号并登录,成功后萌卡后台能看到该 QQ 在线
6.2 Linux 协议 · 扫码登录
- 小韭菜前台 → 选”萌卡”节点 → 协议选 Linux-电脑扫码 → 点「扫码登录」
- 页面弹出二维码(新 QQ 自动创建萌卡 Linux 账号,不用填密码)
- 手机 QQ 扫码 → 手机上确认 → 等待萌卡显示该 QQ 在线
6.3 下线
- 前台点「下线」,桥接会同时停掉 Linux 和安卓会话,萌卡账号变离线
验收清单(全部打钩才算装好):① 密码登录成功 ② Linux 扫码出码 ③ 扫码确认后上线 ④ 点下线变离线
七、多节点扩展(加北京/天津等节点)
以后在萌卡加新节点,前台自动多一个可选项。只需两步,不用改代码。
7.1 萌卡先添加节点
- 萌卡后台 → 节点管理 → 添加节点(如”北京”),萌卡加完就能用,什么都不用改
7.2 小韭菜后台加一条节点记录
- 小韭菜后台 → 登录接口 → 添加节点
- 节点 URL 填 http://你的服务器IP:35298/北京 —— 重点:斜杠后面写萌卡节点的名字
- 保存。前台登录页出现”北京”节点,用户选它就走北京节点
规律:萌卡有几个节点,小韭菜后台就加几条记录,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








暂无评论内容