通过Docker+Koishi+NapCat搭建QQ机器人
📖 简介
Koishi 是一个功能强大、可扩展的跨平台机器人框架。本指南将引导你如何在 Ubuntu 服务器上,通过 Docker 快速部署 Koishi,并使用 NapCat 作为 QQ 适配器,最终搭建一个稳定、高效的 QQ 机器人。
⚠️ 准备工作
在开始之前,请确保你已准备好以下环境:
- 一台拥有公网 IP 的 Ubuntu 服务器。
- 一个用于登录的 QQ 小号。
- 确保服务器防火墙或云服务商安全组已开放以下端口:
| 端口 | 用途 | 说明 |
|---|---|---|
5140 |
Koishi 控制台 | 用于访问 Koishi 的网页管理面板。 |
6099 |
NapCat WebUI | 用于访问 NapCat 的网页管理面板(扫码登录)。 |
3001 |
NapCat HTTP API | NapCat 提供的 HTTP API 端口。 |
3000 |
NapCat 正向 WebSocket API | Koishi 连接 NapCat 所使用的端口。 |
步骤一:安装 Docker 环境
本部分参考自博客 蓝羽天空,并已适配国内网络环境。
1. 检查旧版本
验证当前环境是否已安装旧版本 Docker。如果已安装,建议先卸载。
1 | |
2. 更新软件包索引并安装依赖
1 | |
3. 添加 Docker 的 GPG 密钥
GPG 密钥用于验证软件包的完整性,确保其来源可信。
1 | |
4. 添加 Docker 软件源
1 | |
5. 安装 Docker
1 | |
6. 配置国内镜像源
为了提升拉取 Docker 镜像的速度,建议配置国内镜像源。
1 | |
7. 重启并验证 Docker
1 | |
如果能看到 “Hello from Docker!” 字样,说明 Docker 已成功安装。
步骤二:使用 Docker 安装 Koishi
运行以下命令来启动 Koishi 容器。
1 | |
参数说明:
-d: 后台运行容器。--name koishi: 将容器命名为koishi,方便管理。--restart always: 容器退出时总是自动重启。-p 5140:5140: 将宿主机的 5140 端口映射到容器的 5140 端口。-v /root/koishi_data:/koishi: 将 Koishi 的数据(配置、插件等)持久化到宿主机的/root/koishi_data目录。-e TZ=Asia/Shanghai: 设置时区为东八区,确保日志时间正确。
容器运行后,稍等片刻即可通过浏览器访问
http://<你的服务器IP>:5140进入 Koishi 控制台。
步骤三:安装并运行 NapCat
1. 一键安装 NapCat
使用官方提供的一键安装脚本,以 TUI (终端图形界面) 模式进行安装。
1 | |
根据提示完成安装即可。
2. 后台运行 NapCat
为了让 NapCat 能在关闭 SSH 连接后依然保持运行,我们使用 screen 工具。
1 | |
提示:在
screen会话中,按Ctrl+A然后按D可以分离会话(使其在后台继续运行)。
3. 登录 QQ
访问 http://<你的服务器IP>:6099/webui,进入 NapCat 的 WebUI,使用手机 QQ 扫描二维码登录。
步骤四:连接 Koishi 与 NapCat
1. NapCat 中开启 WebSocket 服务
进入 NapCat WebUI (http://<你的服务器IP>:6099/webui) 后:
- 点击左侧的「网络配置」。
- 点击左上角的「添加配置」。
- 新建一个「正向 Websocket 服务器」,格式如下图所示,然后保存。

2. Koishi 中安装 OneBot 适配器
NapCat 兼容 OneBot v11 协议,因此我们需要在 Koishi 中安装相应的适配器。
- 进入 Koishi 控制台 (
http://<你的服务器IP>:5140)。 - 在左侧菜单中点击「插件市场」。
- 搜索
adapter-onebot并安装它。
3. 配置 OneBot 适配器
安装完成后,Koishi 会自动跳转到配置页面(或在「插件配置」中找到 adapter-onebot)。
- 点击「添加机器人」。
- 在弹出的表单中,关键配置如下:
protocol: 选择ws(正向 WebSocket)。endpoint: 填写 NapCat 的 WebSocket 地址,即ws://127.0.0.1:3000。注意:因为 Koishi 和 NapCat 运行在同一台服务器的 Docker 网络中,此处建议使用
ws://host.docker.internal:3000或宿主机内网IP,127.0.0.1可能无法访问。最稳妥的方式是直接使用服务器的公网IP,例如ws://<你的服务器IP>:3000。
- 保存配置并启用该插件。
如果一切顺利,你应该能在 Koishi 控制台的「连接」页面看到状态为「ONLINE」的机器人。
✅ 完成
至此,Koishi 和 NapCat 的配置已全部完成。你的 QQ 机器人已经可以接收和发送消息了。接下来,你可以在 Koishi 的插件市场中探索和安装各种有趣的功能插件,打造属于你自己的强大机器人!
附录:常用 Docker 命令
1 | |