Skip to content

使用 NapCat 作为 QQ 客户端的场合

字数
648 字
阅读时间
3 分钟

使用无头 NTQQ NapCat 接入。并非所有功能都支持,只有在 icqq 不可用的时候才使用 NapCat 接入

CAUTION

由于 NapCat 的更新频率非常高,并且经常引入需要手动干预的 Breaking Changes(例如需要所有用户手动修改环境变量的文件路径改变,或者破坏性修改 API 返回格式和字段位置),请在使用 NapCat 接入时充分做好遇到未知问题的准备。

并且在你想要更新 Q2TG 或 NapCat 容器前检查更新内容以及是否需要更新 Docker Compose YAML。

强烈建议只有在 icqq 不可用时才考虑使用 NapCat

https://napneko.github.io/zh-CN

请在 napcat 容器的 ACCOUNT 变量中填写你要登录的 QQ 号,并且将 mac 改成一个唯一的虚拟 mac 地址(方便 QQ 保存你的登录信息)

然后通过访问主机 IP:6099/webui 登录 QQ,登录的 token 在 docker compose logs 里会显示。完成之后再开始 Q2TG 的配置。会自动使用设置好的 NapCat WebSocket 连接

Cloudflare Tunnel 请使用这里的 docker-compose.yaml

Nginx + Certbot 请使用这里的 docker-compose.yaml

将原先使用 icqq 的实例转换为 NapCat

首先删除 docker compose 里面的 sign 容器(如果有)同时清理 depends_on。然后参考这里的 docker compose yaml,添加 NapCat 容器,并且将 volume 挂载好

登录好 NapCat 后,进入 Q2TG 的数据库,在 QqBot 表中将对应的 bot 的 type 改为 napcat,并且在 wsUrl 里填写 ws://napcat:3001 这样的 url

为第二个实例使用 NapCat

首先参考 docker compose 的 yaml,创建一份新的 NapCat 容器

yaml
volumes:
  napcat-data2:
  napcat-config2:

services:
  napcat2:
    image: mlikiowa/napcat-docker:latest
    environment:
      - ACCOUNT=要登录的 QQ 号
      - WS_ENABLE=true
    ports:
      - 6098:6099
    mac_address: 02:42:12:34:56:78 # 请修改为一个固定的 MAC 地址,但是不要和其他容器或你的主机重复
    restart: unless-stopped
    volumes:
      - napcat-data2:/app/.config/QQ
      - napcat-config2:/usr/src/app/napcat/config
      - cache:/app/.config/QQ/NapCat/temp

  q2tg:
    depends_on:
      - napcat2

需要注意,cache 这个 volume(路径为 /app/.config/QQ/NapCat/temp)应该是所有容器共享的,因为发送和接受文件 / 图片之类的会用到。如果你自己用其他的方法启动 NapCat 的话,也要让这个目录保持共享

NOTE

不知道从什么时候开始,NapCat Docker 修改了数据目录的位置,所以请在更新最新版 NapCat 和 Q2TG 时请修改这些环境变量到 /app 开头的目录

然后,在初始化让你输入 QQ 号的时候,输入 ws://napcat2:3001 这样的 url