把QQ机器人挂在服务器上,核心就三步:选一台能长期在线的云服务器,用Docker跑协议端登录QQ,再把协议端和NoneBot2、云崽这类框架用反向WebSocket接起来,做完这三步,机器人就能7×24小时在线。
先把架构理清楚:协议端、框架端和反向WebSocket
很多人第一次搞QQ机器人,卡住不是因为命令敲错,而是没弄明白“谁在干什么”,社区方案的底层逻辑其实很朴素:让一个程序模拟QQ客户端登录,收到消息后转成OneBot 11协议,再交给业务框架处理。
拆开看就三个角色:
- 协议端:NapCatQQ、Lagrange.OneBot、LLOneBot,负责登录QQ、维持在线、收发消息。
- 框架端:NoneBot2(Python)、云崽Yunzai(Node.js)、Koishi(Node.js),负责写插件、做关键词回复、接大模型。
- 通信方式:优先用反向WebSocket,协议端主动去连框架端,框架端不用把端口暴露到公网,安全省心。
三种常见组合怎么选
- 想省事、插件多:NapCat + 云崽,云崽生态成熟,米游社、抽卡、签到类插件一抓一大把。
- 想自己写逻辑:NapCat + NoneBot2,Python上手快,文档全,适合做定制功能。
- 想多平台统一:Koishi,一个框架管QQ、Discord、Telegram,适合折腾型玩家。
行业共识认为,协议端和框架端分开放,比“一个程序全包”更好维护,哪天协议端抽风,重启容器就行,业务逻辑不受影响。
QQ机器人部署到云服务器教程:从开机到跑通
下面按一台全新Ubuntu服务器走一遍,命令可以直接复制。
第一步:服务器怎么选,别只盯着价格
- 系统:Ubuntu 22.04/24.04或Debian 12,别选Windows,资源占用高、坑还多。
- 配置:2核2G起步,Docker加NapCat再加一个轻量框架,这个配置够用。
- 带宽:3M足够,机器人主要是文本消息,流量很小,图片多的时候才吃点带宽。
- 地域:国内延迟低,但机房IP登录QQ被风控的概率相对高一些;境外机器延迟高,IP段不一样,各有取舍。
- 磁盘:40G起步,日志、图片缓存、插件数据会慢慢涨。
第二步:基础环境,三条命令
apt update && apt upgrade -y curl -fsSL https://get.docker.com | bash docker version
看到版本号输出,说明Docker装好了,接着把当前用户加进docker组,省得每条命令都加sudo。
第三步:用Docker启动NapCat
docker run -d --name napcat --restart=always \ -p 6099:6099 -p 3000:3000 \ -v /opt/napcat/config:/app/napcat/config \ -v /opt/napcat/qq:/app/.config/QQ \ mlikiowa/napcat-docker:latest
参数含义:--restart=always保证服务器重启后容器自动起来;6099是WebUI管理端口;3000是OneBot的HTTP/WS端口;两个-v把配置和QQ登录态挂到宿主机,重建容器不丢数据。
启动后浏览器打开http://服务器IP:6099,用手机QQ扫码登录,首次登录建议用小号测试。
第四步:配置反向WebSocket
进WebUI的网络配置,新增一个WebSocket客户端,地址填框架端的地址,如果框架端和协议端在同一台机器、用Docker网络,注意容器之间不能直接用127.0.0.1,要么用宿主机内网IP,要么建一个docker network让两个容器互通。
第五步:接上NoneBot2或云崽
NoneBot2这边,.env里至少要写:
DRIVER=~fastapi+~websockets
HOST=0.0.0.0
PORT=8080
然后nb run启动,协议端连上后,日志里会出现连接成功的提示。
云崽则是先git clone仓库,pnpm install装依赖,再node app启动,配置文件里填好QQ号和协议端地址。
宝塔面板部署QQ机器人:适合不熟悉命令行的
如果你对SSH有心理阴影,宝塔面板确实能降低门槛:
- 软件商店装Docker管理器,直接拉NapCat镜像。
- 用“进程守护管理器”守护框架端进程,掉线自动拉起。
- 文件管理里改配置文件,比vim友好。
- 防火墙放行6099端口,用完记得关掉,别长期暴露。
需要提醒的是,面板只是把命令图形化,底层逻辑没变,出了问题还是得看日志。
QQ机器人用轻量服务器够不够?配置和稳定性的真实取舍
这是被问得最多的问题,答案取决于你挂几个号、跑多少插件。
| 场景 | 推荐配置 | 说明 |
|---|---|---|
| 单QQ号、基础回复 | 2核2G | 够用,内存留出余量 |
| 单号、云崽多插件 | 2核4G | 插件和缓存吃内存 |
| 两三个号 | 4核4G | 多开容器,注意IP风控 |
| 只做测试 | 1核2G | 能跑,但容易OOM |
1核1G不建议碰,Docker本身要占内存,Node.js框架再一跑,系统很容易触发OOM Killer,表现就是“机器人莫名其妙掉线”,另外注意CPU架构,部分ARM实例需要确认镜像有arm64版本,买之前先看清楚。
QQ机器人挂服务器一个月多少钱
成本这块,服务器是大头,其他几乎可以忽略。
- 国内轻量应用服务器:2核2G月付普遍在几十元区间,年付促销常见百元级;2核4G贵一些,适合插件多的场景。
- 学生机/新用户活动:价格更低,但要注意续费价,别只看首年。
- 境外VPS:月付几美元起,延迟高,适合对IP风控有顾虑的人。
- 其他成本:QQ号本身不花钱,域名不是必需,备份用对象存储也花不了几块。
据工信部数据,国内云服务器整体价格这几年是往下走的,中小配置的入门机型选择很多,真正的隐性成本是时间:第一次部署可能要折腾一晚上,跑顺之后基本不用管。
个人开发者搭建QQ机器人选哪家服务器
不点名吹某一家,给几个判断标准更实在:
- 看活动价也看续费价,很多机器首年便宜,第二年翻倍。
- 看是否有独立IP,共享IP段如果被人挂过机器人,容易被牵连。
- 看支不支持按量退款,新手折腾两天发现不合适,能退就少亏。
- 看控制台好不好用,重装系统、重置密码、看监控方不方便。
地域上,国内机房延迟低,但QQ登录风控相对敏感;如果你的号比较“新”,可以先在本地或家宽环境养几天,再迁到服务器,减少异地登录触发的验证。
上线前必须处理的账号与风控问题
- 实名和常用设备:新号直接上机房IP登录,验证码能把你拦到怀疑人生。
- 一个IP别挂太多号:同一出口IP下多个QQ同时在线,容易触发批量风控。
- 别频繁重启登录:协议端反复上下线,在腾讯看来就是异常行为。
- 协议端保持更新:QQ客户端版本在变,协议端不更新就可能登录失败。
- 遵守平台规则:做群管理、通知类功能没问题,批量营销、骚扰消息该封还是封。
长期维护:日志、自启和备份
跑起来只是开始,稳定运行靠这几件事:
- 自启:Docker用
--restart=always,非容器进程用systemd写service文件。 - 看日志:
docker logs -f napcat,出问题先看最后几十行。 - 日志轮转:Docker配置
max-size和max-file,不然磁盘迟早被撑满。 - 备份:定期打包
/opt/napcat/config和框架的data目录,换机器时直接搬。 - 监控:宝塔或云监控看内存曲线,持续上涨多半是内存泄漏,重启能缓解但要找根因。
把QQ机器人挂在服务器上,本质是把“能跑”变成“稳定跑”,选对配置、做好自启和备份,剩下的就是慢慢加功能。
关于怎么把QQ机器人挂在服务器上,几个高频问题
没有公网IP能挂QQ机器人吗
可以,用反向WebSocket模式,协议端主动连框架端,框架端不需要公网入口,但协议端本身要能访问外网,所以服务器必须联网,家宽没有公网IP也不影响。
服务器重启后机器人要手动登录吗
不需要重新扫码,登录态已经持久化到挂载目录里,容器启动后会自动恢复,前提是挂载路径别写错,重建容器时配置卷要保留。
QQ机器人一定要用Docker部署吗
不是必须,直接跑可执行文件也行,但Docker把依赖和运行环境打包好了,换机器、回滚版本都更省事,出问题删容器重来即可,不会污染宿主机环境。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/774118.html


