NapCat 完全指南:新一代 QQ 机器人协议端
NapCat(又称猫猫框架)是现代化的基于 NTQQ 的 Bot 协议端实现,通过调用 QQ 客户端底层接口,将 HTTP/WebSocket 请求标准化为 OneBot v11 协议格式,让你能够轻松搭建属于自己的 QQ 机器人 。
1. NapCat 是什么?
1.1 项目背景
在 NapCat 出现之前,go-cqhttp 曾是搭建 QQ 机器人的主流方案,但该项目已停止维护。NapCat 作为新一代解决方案,采用完全不同的技术路线——基于 QQ 官方 Linux 版本(NTQQ)而非逆向破解,因此稳定性更好,且项目持续活跃开发中 。
1.2 核心特点
| 特点 | 说明 |
|---|---|
| 稳定可靠 | 基于官方 QQ Linux 版本,非逆向破解,稳定性更高 |
| 持续维护 | 项目活跃开发,及时跟进 QQ 版本更新 |
| 标准协议 | 完整实现 OneBot v11 协议,兼容性极强 |
| 功能完善 | 支持消息收发、群管理、文件传输、语音图片等全功能 |
| 多种启动方式 | 支持无头模式、LiteLoader 插件、GUI 三种启动方式 |
| Docker 友好 | 官方提供 Docker 镜像,一键部署 |
| WebUI 管理 | 内置 Web 管理界面,远程配置更方便 |
1.3 工作原理
NapCat 的角色是一个”翻译官”——它负责登录 QQ 并提供标准化的 API 接口,让机器人框架(如 AstrBot、Koishi、NoneBot)可以通过 HTTP 或 WebSocket 来控制 QQ 账号收发消息 。
┌─────────┐ ┌──────────┐ ┌─────────────┐ ┌─────────┐│ QQ │────▶│ NapCat │────▶│ OneBot协议 │────▶│ 机器人框架 ││ 客户端 │◀────│ (协议端) │◀────│ (标准化接口) │◀────│ (大脑/中枢) │└─────────┘ └──────────┘ └─────────────┘ └─────────┘简单来说:NapCat 是”耳朵”和”嘴巴”(收发消息),机器人框架是”大脑”(处理逻辑、调用 AI)。
2. 部署 NapCat
2.1 环境要求
| 项目 | 要求 |
|---|---|
| 操作系统 | Ubuntu 20.04+ / Windows 10+ / macOS |
| 架构 | x86_64 / aarch64 |
| 网络 | 需要开放端口:3000、3001、6099 |
| QQ 账号 | 一个用于机器人的 QQ 号(建议小号) |
2.2 方式一:Docker 部署(推荐 Linux/服务器)
拉取镜像并创建容器
sudo docker run -d \ -e NAPCAT_GID=$(id -g) \ -e NAPCAT_UID=$(id -u) \ -p 3000:3000 \ -p 3001:3001 \ -p 6099:6099 \ --add-host=host.docker.internal:host-gateway \ --name napcat \ --restart=always \ docker.1ms.run/mlikiowa/napcat-docker:latest端口说明 :
3000:HTTP 服务端口3001:WebSocket 服务端口6099:WebUI 管理界面端口
查看日志获取 Token
sudo docker logs napcat在日志中找到类似这样的信息:
[WebUi] WebUi Local Panel Url: http://127.0.0.1:6099/webui?token=xxxxxx登录 WebUI 并扫码
- 浏览器访问
http://<服务器IP>:6099/webui - 输入日志中的 Token 登录
- 使用手机 QQ 扫描二维码完成登录
⚠️ 云服务器注意:需在安全组中放行 6099、3000、3001 端口
2.3 方式二:Windows 部署
下载与解压
- 前往 NapCat Releases 下载最新版
- 选择
NapCat.win32.x64.zip(无头版)或完整版 - 解压到任意目录(如
D:\napcat)
启动 NapCat
双击运行 napcat.bat 文件,打开浏览器访问:
http://127.0.0.1:6099/webui?token=napcat扫码登录即可 。
2.4 方式三:Linux 一键脚本(非 Docker)
curl -o napcat.sh https://nclatest.znin.net/NapNeko/NapCat-Installer/main/script/install.sh && sudo bash napcat.sh安装完成后,使用以下命令启动(替换为你的 QQ 号):
screen -dmS napcat bash -c "xvfb-run -a qq --no-sandbox -q 123456789"3. 配置 NapCat
3.1 WebUI 配置界面
登录 WebUI 后,可以配置以下网络类型 :
| 网络类型 | 说明 |
|---|---|
| HTTP 服务端 | NapCat 作为 HTTP 请求接收方,被动响应调用 |
| HTTP 客户端 | NapCat 主动将事件推送至插件/应用 |
| WebSocket 服务端(正向 WS) | 既能主动推送事件也能接收请求,双工模型 |
| WebSocket 客户端(反向 WS) | 主动连接机器人框架,推荐方式 |
3.2 配置反向 WebSocket 连接(连接机器人框架)
在 WebUI 中点击 网络配置 → 新建 → WebSocket 客户端,填写:
| 字段 | 值 |
|---|---|
| 启用 | ✅ 勾选 |
| URL | ws://<机器人框架IP>:<端口>/ws |
| 消息格式 | Array |
| 心跳间隔 | 5000 ms |
| 重连间隔 | 5000 ms |
3.3 配置说明
- 正向 WebSocket:NapCat 作为服务端,机器人框架主动连接
- 反向 WebSocket:NapCat 作为客户端,主动连接机器人框架(推荐,更稳定)
4. 配合 AstrBot 快速搭建 AI 机器人
4.1 使用 Docker Compose 一键部署
创建 docker-compose.yml:
version: '3'
services: napcat: image: mlikiowa/napcat-docker:latest container_name: napcat ports: - "3000:3000" - "3001:3001" - "6099:6099" restart: always extra_hosts: - "host.docker.internal:host-gateway"
astrbot: image: soulter/astrbot:latest container_name: astrbot ports: - "6185:6185" - "6199:6199" restart: always depends_on: - napcat启动服务:
docker-compose up -d4.2 配置 AstrBot 连接 NapCat
- 访问 AstrBot WebUI:
http://localhost:6185(默认账号密码:astrbot) - 进入 机器人 → 创建机器人
- 选择 OneBot v11 类型
- 填写配置 :
- 反向 WebSocket 主机地址:
napcat(Docker 容器名)或127.0.0.1 - 反向 WebSocket 端口:
6199 - Token:留空或与 NapCat 保持一致
- 反向 WebSocket 主机地址:
4.3 配置 DeepSeek AI(可选)
- 登录 DeepSeek 平台 获取 API Key
- 在 AstrBot 后台 模型提供商 → 新增 → DeepSeek
- 填入 API Key 并保存
- 用另一个 QQ 给机器人发消息测试
4.4 建立容器间网络互通(宝塔面板部署)
如果使用宝塔面板分别创建容器,需要将 NapCat 和 AstrBot 加入同一 Docker 网络:
- 创建自定义网络:
docker network create astrbot-napcat - 将两个容器加入该网络
- 记录 AstrBot 容器在该网络中的 IP,NapCat 配置中使用该 IP
5. 配合 Koishi 使用
5.1 安装适配器
npm install koishi-plugin-adapter-napcat5.2 配置适配器
在 Koishi 配置中添加 :
export default { plugins: { 'adapter-napcat': { protocol: 'ws-reverse', // 或 http、ws endpoint: 'ws://localhost:3001', token: 'your-token' } }}6. 常见问题与解决
| 问题 | 解决方法 |
|---|---|
| WebUI 无法访问 | 检查 6099 端口是否放行;查看容器日志确认服务已启动 |
| 扫码后登录失败 | 检查是否使用了受风控的账号;尝试更换网络环境 |
| 机器人收不到消息 | 检查 WebSocket 连接状态;确认消息上报配置正确 |
| Docker 容器启动失败 | 执行 docker logs napcat 查看错误日志;检查端口是否被占用 |
| Token 忘记/丢失 | 执行 docker logs napcat | grep Token 重新查看 |
| 消息发送失败 | 检查账号是否被风控;确认消息格式正确 |
7. 注意事项与风险提示
⚠️ 风控风险
腾讯在用户协议中明确禁止使用非官方客户端或外挂插件。QQ Bot 属于非官方应用,可能存在封号风险,建议 :
- 使用小号进行测试
- 避免频繁发送相同内容
- 控制发送频率,不要短时间内大量发消息
- 注意账号安全,不要用于重要账号
📝 使用建议
- 定期更新:NapCat 持续更新以适配 QQ 版本变化,建议定期检查更新
- 合理使用:避免用于营销、广告等可能触发风控的行为
- 备份配置:保存好 WebUI Token 和配置文件
8. 总结
NapCat 作为新一代 QQ Bot 协议端,凭借基于官方 QQ、稳定可靠、功能完善的特点,已成为 go-cqhttp 的完美替代品。无论是通过 Docker 快速部署,还是配合 AstrBot、Koishi 等框架搭建 AI 机器人,NapCat 都能提供稳定高效的底层支持。
进一步学习资源:
- 官方文档:https://napneko.icu/
- GitHub 仓库:https://github.com/NapNeko/NapCatQQ
- NapCat 接口文档:https://napneko.icu/config/basic
祝你搭建顺利,打造属于自己的 QQ 机器人!🤖
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时









