Anubis:用挑战关卡称量 HTTP 请求的灵魂,把 AI 爬虫挡在门外
权衡传入 HTTP 请求的灵魂以阻止 AI 爬虫
秒懂
- 它是什么?
- Anubis 是一个 Go 编写的反向代理防火墙,通过 Proof-of-Work 挑战过滤 AI 爬虫。它适合不愿依赖 Cloudflare 的小型站点,但会误伤普通爬虫和部分用户,部署前需权衡。
- 适合谁用?
- Anubis 适合那些无法或不愿使用 Cloudflare,且愿意接受一定流量损失来换取内容不被 AI 公司抓取的个人站长或小型社区。它不适合依赖搜索引擎自然流量、或需要频繁被外部服务访问的站点,因为默认策略会阻止未通过挑战的爬虫,包括 Internet Archive 这类归档机器人。
- 能商用吗?
- 可以。MIT 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
- 还在维护吗?
- 在维护。仓库最近一次提交在 2 天前。
- 用什么语言写的?
- 主要是 Go(依据 GitHub 的语言统计)。
以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。
开源项目深度解析
它解决什么问题:AI 爬虫洪流下的自保
AI 公司的爬虫不会敲门。它们以数据中心 IP 为据点,日夜不停地抓取网页内容,用于训练模型或构建知识库。对于个人站点和小型社区,这种请求洪流会消耗带宽、拖慢服务器,甚至让真实用户无法访问。Anubis 的定位很直接:它是一道 Web AI 防火墙,通过一个或多个挑战来“称量你连接的灵魂”,只有通过挑战的请求才能到达上游资源。这个名字来自埃及神话中的灵魂称量仪式,项目作者用这个比喻强调其裁决性质。它不是为大型企业设计的,README 明确说这是“核弹式回应”,目标是保护“小互联网”免受 AI 公司的无尽请求风暴。
机制解剖:Proof-of-Work 挑战如何过滤爬虫
Anubis 的核心机制是 Proof-of-Work(工作量证明)挑战。当请求到达时,Anubis 不会直接转发,而是返回一个需要计算的挑战。真实浏览器可以自动完成计算,然后带着证明重新请求;而爬虫通常没有执行 JavaScript 的能力,或者不愿意为此消耗 CPU,因此会被挡在门外。这种设计的巧妙之处在于,它不依赖 IP 黑名单或 User-Agent 识别,而是让请求方付出实际的计算成本。AI 公司的爬虫往往追求高吞吐,让每个请求都做一次 PoW 计算,成本会迅速上升,从而降低抓取的经济性。但这也意味着,任何不支持 JavaScript 的客户端都会失败,包括某些旧浏览器、命令行工具,以及那些“好”的爬虫。
部署与配置:从 README 能看到的启动方式
README 没有给出完整的安装命令,但文档站 anubis.techaro.lol 提供了详细指南。从仓库结构看,Anubis 是一个 Go 项目,发布版本以 v1.27.0 为最新,命名带有人物名“Moenbryda Wilfsunnwyn”。通常的部署方式是将 Anubis 作为反向代理放在上游服务器之前,监听 80/443 端口,然后把通过挑战的请求转发到后端。配置上,你可以在 docs/docs/admin/policies.mdx 中定义 bot policy,明确允许哪些爬虫。例如,你可以为 Internet Archive 设置白名单,避免它被默认策略阻止。由于 README 未提供具体命令,实际安装需要查阅文档站,但作为 Go 项目,你大概率可以用 go install 或下载预编译二进制。部署前,请确认你的反向代理配置能正确传递客户端 IP,否则挑战逻辑可能失效。
一个真实的代价:误伤好爬虫与访客体验
Anubis 的默认策略是拒绝所有未通过挑战的请求,这带来一个明确后果:它会阻止“好”的爬虫,比如 Internet Archive。README 对此直言不讳,并建议你通过 bot policy 显式允许它们。但这也意味着,如果某个搜索引擎的爬虫没有及时更新以支持 PoW,你的内容就会从索引中消失。更微妙的是,真实用户也可能受影响:如果用户禁用了 JavaScript,或者使用某些隐私保护插件,挑战页面可能无法正常渲染,导致他们看到空白页。Anubis 的“核弹式”标签不是夸张,它确实会牺牲一部分可访问性。对于依赖长尾搜索流量的内容站,这可能是一个致命伤。在启用前,你需要评估自己的内容是否值得这种保护,以及是否愿意承担流量下降的风险。
替代方案:Cloudflare 与 Anubis 的取舍
README 自己承认,在大多数情况下你不需要 Anubis,Cloudflare 就足够保护一个源站。Cloudflare 提供免费的 DDoS 防护、Bot 管理,以及基于 IP 信誉和 JS 挑战的爬虫过滤,而且它对“好”爬虫的处理更成熟。Anubis 的适用场景是那些不能或不愿使用 Cloudflare 的人,比如出于隐私考虑不想让流量经过第三方,或者需要完全自托管的站点。两者的核心差异在于:Cloudflare 是集中式服务,依赖其全球网络和威胁情报;Anubis 是自托管软件,逻辑透明,你可以完全控制策略,但需要自己承担运维和调优成本。如果你已经熟悉 Cloudflare,先试它的免费层;如果不行,再考虑 Anubis。
维护与升级成本:活跃开发但需自行跟进
Anubis 的仓库处于活跃状态,最新版本 v1.27.0 发布于 2026 年 8 月 8 日,且在此前一周内发布了两个预发布版本(pre3、pre4),说明开发节奏较快。这意味着你需要定期跟进更新,以获取新的挑战算法或爬虫策略改进。项目采用 MIT 许可证,你可以自由使用、修改和分发,但没有任何商业支持承诺。文档站是主要资源,但 README 中提到的 bot policy 文档可能不够详尽,实际配置可能需要阅读源码或社区讨论。如果你不习惯跟踪上游变更,这种快速迭代可能带来维护负担。另一方面,活跃开发也意味着问题修复较快,你可以通过 GitHub Issues 报告问题,但作者在 README 中要求提供完整的诊断信息,这暗示排障可能不简单。
结论:谁该用,谁该绕行
Anubis 是一个有明确立场的工具,它不试图讨好所有人。如果你是一个独立站长,深受 AI 爬虫困扰,且愿意接受流量损失,它值得一试。但如果你依赖搜索引擎收录,或者你的访客群体中有大量使用非主流浏览器的人,请先设计好白名单策略。部署前,务必在文档站上验证当前版本的配置语法,并准备一个小流量测试环境。Anubis 的核弹式响应是设计使然,不是缺陷,但你需要清楚自己是否愿意按下这个按钮。
编辑结论
Anubis 适合那些无法或不愿使用 Cloudflare,且愿意接受一定流量损失来换取内容不被 AI 公司抓取的个人站长或小型社区。它不适合依赖搜索引擎自然流量、或需要频繁被外部服务访问的站点,因为默认策略会阻止未通过挑战的爬虫,包括 Internet Archive 这类归档机器人。部署前,先明确你的威胁模型:是否真的被 AI 爬虫骚扰?若只是偶发抓取,Cloudflare 的免费层可能更省心。若决定使用,务必先在测试环境验证默认策略对现有访客的影响,并准备一份明确的 bot policy 列表,将你信任的爬虫加入白名单。Anubis 的核弹式响应是设计使然,不是缺陷,但你需要清楚自己是否愿意按下这个按钮。
社区笔记