AI摘要
宝塔11上用Docker分装AstrBot与NapCat,先同建bot-network解决容器互通,再配WebSocket与aiocqhttp适配器,扫码登录小号即可把QQ接入AI,全程避坑要点详录。
本文适用于在 宝塔面板 11 环境下,使用 Docker 容器分别部署 AstrBot 和 Napcat,从而实现将个人 QQ 号接入 AI 机器人的场景。
请注意:通过 NapCat 使用 QQ 协议存在一定风控风险,请谨慎操作,建议使用小号测试。
介绍
AstrBot 是一个易于上手的多平台聊天机器人及开发框架。通过它,你能够在多种消息平台上部署一个支持大语言模型(LLM)的聊天机器人。并以此实现但不限于 AI 知识库问答、角色扮演、群聊管理、LLM Agent 等功能。它有如下特性
部署步骤
1.部署 AstrBot
1.登录宝塔面板,进入 Docker 管理页面。
2.在“应用商店”中搜索 AstrBot,点击安装即可。

2.部署 NapCat
AstrBot 安装完成后,回到 Docker 的“容器”页面,点击 创建容器 → 命令创建。

在弹出的窗口中输入以下命令:
docker run -d --name napcat -p 6099:6099 -p 16530:16530 -v /home/napcat/config:/app/config --restart=always napcat/napcat:latest
点击“执行命令”,等待 NapCat 拉取镜像并启动完成。
配置步骤
1.登录 QQ
注意:新注册的 QQ 号不要立刻接入,容易触发风控。
NapCat 启动后,我们需要查看容器日志以获取登录二维码和管理面板地址。
在容器列表中找到 napcat 容器,点击右侧“更多”→“日志”。

日志中会显示一个“二维码解码 URL”,复制该链接。打开草料二维码将刚才的 URL 粘贴进去,生成二维码图片。

用你要接入的 QQ 号扫描该二维码,并在手机上确认登录。
2.进入 NapCat 管理面板
在浏览器中访问:
http://你的服务器IP:6099/webui
Token 输入 napcat 即可进入管理后台。如果之前扫码登录成功,在“基础信息”页面应该能看到你的 QQ 号信息。

3. 添加 WebSocket 客户端(关键步骤)
这里有一个容易卡住的点:由于 AstrBot 和 NapCat 分别运行在不同的 Docker 容器中,默认情况下两个容器网络不互通,无法直接建立 WebSocket 连接。
解决方案:将两个容器加入同一个 Docker 网络。
在宝塔 Docker 页面,进入“网络”选项卡,点击“添加网络”。
网络名称可随意填写(例如 bot-network),点击添加。

回到“容器”页面,找到 napcat 容器,点击“管理”→“容器网络”。
选择刚创建的 bot-network,点击“加入网络”,并移出其他网络,确保该容器只属于这个新建的网络。

对 AstrBot 容器重复上述操作,同样将其加入 bot-network 并移出原有网络。
记录 AstrBot 容器 在 bot-network 中的 IPv4 地址(在容器网络管理页面可见)。
4.配置 WebSocket 连接
在 NapCat 管理面板中,进入 网络配置 → 新建 → WebSockets 客户端。

填写以下信息:
- 名称:可自定义,如 AstrBot_WS
- 地址:填写上一步获取的 AstrBot 容器 IP
- 端口:8080
- Token:留空
- 启用:勾选
点击保存。
注意:这里的 IP 是容器在内网中的地址,不要填写服务器公网 IP。
2. 配置 AstrBot

配置如下:
- 名称:可自定义,如 NapCat_QQ
- 监听地址:0.0.0.0
- 监听端口:8080
- Token:留空
点击保存。
设置管理员
进入 配置 → 其他配置,在 管理员 ID 中填写你的 QQ 号(不是机器人的 QQ 号)。
记得点击右下角“保存”,系统会自动重启并应用配置。
完成验证
回到 AstrBot 的 控制台 页面,如果看到类似以下日志:
aiocqhttp(OneBot v11) 适配器已连接。
说明 AstrBot 和 NapCat 已成功连接,机器人已上线。
后续建议
更多功能配置可参考官方文档
遇到问题可以在GitHub Issues中搜索或提问,社区氛围很好,通常能得到解答。
如果部署中遇到其他问题,也欢迎在评论区留言交流。