分离部署项目优劣分析
目前有四个主要的可用项目可以实现 OneBot 协议的 QQ 机器人 API,它们分别是 Lagrange(lgr/拉格兰)、Napcat(nc)、LiteloaderOneBot(LLOB) 和 Shamrock(四叶草)。这些项目各有优劣,没有绝对的优劣之分。归根结底,只要能满足你的需求和预期,那就是合适的选择,同理对其他人也是这样,你可以推荐,但不应该存在什么“鄙视链”。接下来,我将尽量客观地分析它们的优缺点和可能存在的问题,供你参考。
运行原理概述
当前 QQ 的非官方机器人实现,主要分为两种运行途径:协议端 和 Hook。
协议端:
协议端通过模拟 QQ 的行为,实质上就是一个“假的 QQ 客户端”。这种实现方式资源占用低,能够同时处理大量群聊,是性能最佳的选择。Lagrange 和几乎已经死差不多了的 GOCQ 属于这一类型。
Hook 式:
Hook 则是通过修改 QQ 客户端,劫持消息来实现机器人协议。
这种方式需要运行一个完整的屎山 QQ 客户端,众所周知QQ客户端无论在哪都是极度的臃肿,因此资源占用较高。尤其是当群聊数量较多时,效率急剧下降,难以支持大规模机器人。
不过,它也有一个独特优势:由于是基于“真 QQ 客户端”,被腾讯察觉和封号的概率相对更低。Napcat、LiteloaderOneBot 和 Shamrock 都属于这一类。(腾讯:不好意思,聊天软件需要虚幻引擎)
性能警告
Hook 式项目的性能问题在服务器上尤其明显,服务器一般不会有家用电脑那样强劲的CPU性能,运存也比动辄32GB的家用电脑少,而且最重要的是,大部分常见云厂商的硬盘IO极差,而 Hook 式项目的主要性能瓶颈就是硬盘IO。
这里建议如果日消息几千甚至一万的情况,就别使用Hook方式的项目了,要不然等个回复可能会要数秒,还有可能导致频繁崩溃。
如果部署这一类的项目后发现它回复很慢并且经常崩溃,那就说明你的机器人体量过大了,换去协议端类型的项目吧。
项目分析
Sealdice 选定 Lagrange 作为内置客户端上游,还受到绝大多数视频和博客站等的推荐,作为一个协议端,Lagrange 的兼容性和性能无疑是极好的。它能在各种设备环境下运行,甚至连路由器上都可以(没错我真这么干过)。
理论上,它的低资源占用使其能够处理更多的大型机器人账号,是资源有限的最佳选择,大型机器人的唯一选择。
然而,Lagrange 的核心问题在于签名服务。由于各种因素,Lagrange 需要通过签名才能使用,签名服务并非开源,Lagrange 官方只提供了一个公共签名服务,且主机位于海外,并使用 Cloudflare 保护的服务器提供。对网络极为玄学的中国大陆用户来说,Cloudflare 的访问体验简直是抽抽又象象。如果你部署在国外,体验会更好些。
如果你的主机在国内,可以尝试雪桃的反代签名。你可以直接使用 雪桃 の Lagrange 一键包生成器 生成使用了雪桃反代签名的 Lagrange 一键包。
![典中之典:onebot | warn: Lagrange.Core.BotContext [0] 典中之典:onebot | warn: Lagrange.Core.BotContext [0]](https://blog.xuetao.host/usr/uploads/2025/04/3496333221.png)
此外,由于它是“假的 QQ 客户端”,相较于在 Linux 系统部署的 Hook 式协议端,更容易被腾讯察觉。拦截消息,踢下线甚至封号的概率理论上会更高。另外,Lagrange的协议版本更新横向对比 LiteloaderOneBot 和 Napcat 是偏慢的,有些天选之人 QQ 账号可能被腾讯强制要求使用最新的 NTQQ 版本登入,这种情况下 Lagrange 将不再是一个选项。
2025/08/26更新:比 Windows Napcat 稳。Windows 不搞 WSL 或 Docker 这是你最稳的选择了。
Lagrange 官方是有一个 fork 的 GOCQ 的。需要注意的是,本质上这玩意就是一个低占用版的 Lagrange,和各位熟知的并非是一个 GOCQ 哦~
2025/08/26更新:傻逼腾讯的大手发力了,不建议 Windows 部署。Linux 依然稳定,真要在 Windows 用 Napcat 请自行折腾 WSL 或 Docker。直接部署导致的死号问题你自己承担。
日志读取优雅,直接在 WebUI 中即可查看。更重要的是,它支持“无头运行”——无需渲染 NTQQ 页面,从而大幅降低资源占用。
并且,Napcat 最大的优势在于其反检测能力:在 NTQQ 高版本中,它可以成功拦截检测包,并绕过部分检测点,有很不错的稳定性。
- 但也有限制:由于 Hook 的运行机制,本质上仍然是启动了一个修改后的 NTQQ,即使无头运行也会有不小的资源开销。因此 Napcat 并不适合承担大体量机器人账号的任务。
除此之外,Napcat 几乎都是优点。
如果你打算部署 Napcat,我推荐使用 Linux 环境部署,因为在 Linux 上运行的 NTQQ 几乎没有检测机制,Linux 上的 Napcat 几乎是最稳的选择之一。
如果你仍希望在 Windows 环境部署,以下是一些建议:
- 进阶用户:推荐使用 Docker 部署 Napcat。Napcat 官方 Docker 镜像
- 新手用户:可以尝试安装 NTQQ 的 27597 版本并登入账号。若可成功登入,可继续使用该版本搭配 Napcat Framework 安装方式(该方式没有反检测,但此版本是最后一个未强制检测的 NTQQ 版本)。历史版本 NTQQ 存档
- 如果账号无法登入 27597 版本,可退而求其次使用 Napcat 的一键包(在 Napcat GitHub Release 获取)。一键包已集成反检测机制,能拦截大部分检测,但仍建议避免用于新注册账号或风险偏高的账号,以防被封。
⚠️ 请不要在 27597 之后的版本使用 Framework 安装方式,检测包拦截将无法完全生效。
关于性能:
Napcat 的运行瓶颈主要在于硬盘 IO。这在服务器环境中尤其明显,尤其是国内一些大厂云服务,硬盘性能简直可以用王八壳来形容。
我这里点名批评华为云与京东云,其硬盘 IO 低得离谱,比二十年前的古董机械硬盘还差,甚至连 USB 2.0 的 U 盘都不如。价格拼不过阿里云腾讯云,性能还显著更差。当然,阿里云和腾讯云的硬盘 IO 表现也好不到哪去。
在这种环境下,如果你的账号每日处理消息数量超过三千,极有可能会出现严重的性能下降,表现为回复延迟、频繁崩溃等问题。
- 想要使用 Napcat 稳定地运行大型机器人,建议:
1. 找一家硬盘 IO 高的服务商;
2. 自建家里云,直接吃到一块 SSD 的完整性能。
- 如果你不确定你的机器是否足够强大,可以先部署 Napcat 并观察运行情况:
1. 是否频繁崩溃?
2. 在排除网络问题后,消息是否响应缓慢?
如果这些问题都没有发生,那就说明你的主机可以胜任 Napcat 的运行。
2025/08/26更新:说是现在 LiteloaderOneBot 变成读内存搞的注入了?以后搞机器人还得要 DMA 是吧...稳定性存疑,等待补充信息。不过我可以肯定性能会很糟糕,群多点的号一定瓶颈不小。
LLTwoBot 就是这玩意。
- 日志查看极其不便。如果你在运行中遇到协议端问题,必须自己手动进入文件夹层层翻找日志文件,调试体验极差;如果你想在群里反馈问题,还得先经历一轮“翻山越岭”式的日志提取流程。
- 它存在一些玄学问题。例如前端显示已连接,后端 LiteloaderOneBot 实际却没有任何数据传输。我自己就多次遇到过这种情况,在群里也看到很多类似报告。此类问题通常只能通过重启 NTQQ 甚至重启整台主机来解决,有时还需要多次重启才能恢复正常运行。
虽然从功能上来说,它和 Napcat 基本相当,但 Napcat 支持无头与有头双模式运行,而 LiteloaderOneBot 只能运行在有头模式下,这意味着它的资源占用会更高。
不推荐在高版本NTQQ使用
LiteloaderOneBot 在使用新版本 NTQQ 作为宿主时仍然频繁被踢,没有任何反检测机制,会狠狠被腾讯查,并且非常容易封号。
而且,如果你想在 Linux 上部署该项目,还必须额外安装桌面环境才能运行 NTQQ——对大部分云服务器用户而言,这显然非常不友好。
只能有头运行、资源占用高、Linux 环境又麻烦,这种限制使得 LiteloaderOneBot 在实际部署中处境非常尴尬。
Windows 低版本NTQQ宿主使用是好选择
LiteloaderOneBot 为 27597 这最后一个没有检测的 NTQQ版本 依然做了适配,对比起只能用 2.x 的 远古版本 Napcat,是有着更多问题修复和 API 支持的,如果你在 Windows 使用 27597 版本的 NTQQ 作为宿主进行部署,实际是比使用 Napcat 要更好一些的选择。
总而言之:Napcat 目前已经集成了较为完善的反检测手段,而 LiteloaderOneBot 仍未解决这些基础性问题。在高版本 NTQQ 上使用 LLOB 存在不小的封号风险。低版本可用且使用体验比 Napcat 好一些,因此,我仅推荐在 Windows 端 在低版本NTQQ 上使用这个项目,其他情况下则不建议使用,因为相比之下,Napcat 在体验与稳定性方面都更胜一筹。
Shamrock 是我另一个非常喜欢的项目,虽然它已经归档不再维护。它也是 Hook 式的实现,但不同于 Napcat 和 LiteloaderOneBot,它修补的是安卓端 QQ 客户端。
由于它使用安卓端 QQ,于是就可以在这个模块以外使用其他模块,通过搭配 QAuxiliary 模块,使用它的 禁用热补丁 和 环境检测 功能,从而实现高稳定性运行。这一套操作下来,Shamrock 的稳定性表现的上限会比使用 NTQQ 的 Hook 项目更好。
- 缺点也很明显:
- 操作复杂:需要 Android 设备,并进行 Root 或使用 LSPatch,安装模块,还要配置保活,会很麻烦,也稍微需要写技术。
- 已归档:不再开发维护,随着时间推移会逐渐不可用,并且 Github 上 Action 内容已经全部过期无法下载。不过,我有对它最后一次 Action 进行存档,感兴趣的话可以在我的杂货铺找到。
总结
根据当前的项目现状和实际需求,我的建议是:
最稳定:在 Linux 环境中部署的 Napcat,是目前稳定性最优的方案。
Windows 环境:目前只有 Lagrange 稳定。如果你有能力,可以用 WSL 或 Docker 部署 Linux 环境的 Napcat。
Linux 环境:**Napcat 是最推荐的项目。其稳定性、性能与操作友好度都很不错。官方提供了一键脚本,小白也能轻松部署与管理,适合体量不大的服务常驻运行。
大体量机器人部署:**需要支持大规模群聊或高并发消息处理的用户,Lagrange 是当前综合能力最强的选择。但请特别注意签名服务对网络条件的敏感性。
Napcat 虽可胜任一定规模,但主要瓶颈在于硬盘 IO。在国内常见的云服务器厂商极易触发性能瓶颈,导致崩溃、消息延迟等问题。
如果你有硬盘IO性能优秀的主机,Napcat 依然可试,但若发现频繁崩溃、回复缓慢等情况,那就意味着 Napcat 会有性能瓶颈,不适合你当前环境。
LiteloaderOneBot:新部署请千万别他妈用。
如果你之前已经部署了 LLOB,并且运行稳定——千万别动。
不要更新 NTQQ 版本,不要动插件,不要点那该死的“升级”。一动就可能戳中腾讯的G点,然后对你疯狂检测,接着你就等着频繁掉线甚至直接死号吧。
如果没有踢号问题,请务必停留在你当前所使用版本!如果想在 WIndows 端 使用,请使用 27597 和它之前版本的 NTQQ 作为宿主!
选择适合自己的项目最重要。不需要过度执着某一方案,也请不要带有滤镜。
这里仅对原理分析,实际因为腾讯这傻逼玩意的存在玄学属性一大堆。
总而言之,能稳定跑、少出问题的,就是好项目。
每个账号的“体质”也不一样——腾讯这抽象检测机制下,有人 Linux Napcat 死号,有人高版本 LLOB 能成为耐活王……所以最靠谱的项目,永远是你亲自试过能跑得稳的那个方案。
希望这篇总结能帮你找到最适合的部署方式,让你的 QQ 机器人稳如老狗!
最后,祝你家 bot 成为耐活王,随一首 See You Again 加速版冲出火葬场!(x)
本文更新时间为 2025 年 4 月 23 日,未来可能会因项目更新或环境变化与我的描述有所出入,但对于协议端和Hook的区别,大体逻辑不会变。希望能帮到你!
[...]在这里你可以查到海豹手册未提及的常见故障。如果你根据本篇内容自查后仍然无法解决问题,再去群里提问,并严格按照提问守则进行提问,不催人,不拍屏,主动给出截屏日志,主动给出更多信息(详细的问题描述,使用的分离项目,你如何进行配置,你的配置文件怎么写的)基础:什么是日志?日志就是 Sealdice 主页显示的内容,以及 Napcat 等分离项目的“黑框”。具体详情请查看 如何提问。日志问题排查须知:日志[...]
Thanks , I've recently been looking for information approximately
this topic for a long time and yours is the best I have discovered till now.
But, what about the conclusion? Are you certain in regards
to the source?