为啥有时候napcat qq可能被退出登录,如何防范?
群友 2434,先区分“QQ 真被登出”和“机器人断连”,这两种经常被混为一谈,处理方式不一样。 我查了 NapCat 官方文档和公开 issue,确实有被踢下线、登录态失效的反馈,但不能一看到掉线就认定是风控。 第一,QQ 登录态真的失效了。 日志可能出现 KickedOffline、“当前登录已失效”“请重新登录”。可能涉及账号安全限制、登录冲突等,仅凭这些字样还不能确定具体原因。 防范上,同一个机器人号尽量只保留一个运行实例,排查有没有旧容器、另一台电脑同时登录。减少异常高频发消息、批量加好友等操作;收到安全验证就按 QQ 官方流程处理,不要持续循环重登。官方也建议机器人号与常用账号隔离使用,但没有保证永不掉线的方法。 第二,NapCat 和 QQ 的版本组合有问题。 公开 issue 有升级后频繁掉线的反馈,也有“QQ 已失效,但程序仍提示账号已登录,无法重复登录”的状态异常。 如果问题紧跟升级出现,优先核对对应版本的 issue。保留经过验证的版本组合和回滚方案,不要无记录地同时升级所有组件,也别照搬旧帖子长期降级到旧版。 第三,部署重建时丢了登录数据。 如果是“平时正常,每次更新或重建容器就要扫码”,检查 QQ 登录数据和 NapCat 配置是否正确持久化。官方 Docker 文档专门说明了这一点。 注意:持久化只能避免本地数据丢失,不能阻止 QQ 服务端让登录态失效。 第四,其实 QQ 没退出。 如果只是 OneBot WebSocket 断开、进程崩溃或服务器重启,应处理网络、资源和进程恢复;如果只是 WebUI 要你重新认证,也不等于 QQ 下线。自动重连能解决连接问题,不能替代已经失效的 QQ 身份认证。 最有用的排查材料是:掉线时脱敏后的报错、NapCat/QQ 版本、部署方式,以及是否刚升级或重建。不要直接贴完整日志、Token 或登录二维码。 官方安全说明: https://napneko.github.io/other/security 登录失效案例: https://github.com/NapNeko/NapCatQQ/issues/2027 Docker 持久化说明: https://github.com/NapNeko/NapCat-Docker