Anubis:一个帮你挡住 AI 爬虫的开源防火墙
Anubis:一个帮你挡住 AI 爬虫的开源防火墙
最近发现了一个很有意思的开源项目,Anubis,专门为网站抵御 AI 爬虫而设计,在 GitHub 上已经拿到了 2 万多的 Star。

Anubis 这个名字来自古埃及神话中称量灵魂的神。项目的核心思路也类似:在用户访问网站之前,先用一个挑战来"称量"一下访问者,判断它到底是真人还是爬虫。
这两年 AI 大模型爆发,各家公司的爬虫疯狂抓取互联网上的内容用于训练。很多小型网站的服务器根本扛不住这种流量压力,甚至直接被打到宕机。Anubis 就是为了解决这个问题而诞生的。
它的工作原理
Anubis 本质上是一个 Web 防火墙,部署在你的网站和用户之间。当有请求进来时,它会弹出一个类似"我不是机器人"的验证页面,通过 JavaScript 挑战来验证访问者的身份。

能通过挑战的请求会被放行到后端服务器,无法通过的则被拦截。这个机制对普通用户来说基本无感,但对自动化爬虫来说就是一道难以逾越的墙。
Anubis 用 Go 语言编写,体积小、资源占用低,部署起来也不复杂。它作为反向代理运行,可以和 Nginx、Caddy 等常见的 Web 服务器配合使用。
主要特性
Anubis 提供了灵活的策略配置功能。你可以根据 User-Agent、IP 地址、请求路径等条件来定义不同的访问策略。比如你可以把 Googlebot、Bingbot 这类搜索引擎爬虫加入白名单,让它们正常抓取网站内容,同时拦截那些不守规矩的 AI 训练爬虫。
项目内置了一组"已知良好"的机器人名单,包括常见的搜索引擎和归档服务。你可以直接使用这组默认配置,也可以根据自己的需求进行调整。
Anubis 支持多种部署方式。可以直接下载二进制文件运行,也支持通过 Docker 容器部署。对于使用 Nix 的用户,项目还提供了 flake.nix 配置文件。
适用场景
并不是所有网站都需要 Anubis。如果你已经在使用 Cloudflare 之类的 CDN 服务,它们自带的防护能力通常就够了。
Anubis 主要面向这些场景:无法使用 Cloudflare 的网站、需要更细粒度控制的场景、希望完全掌控防护策略而不依赖第三方服务的团队。
一些社区论坛、Wiki 站点、个人博客等小型站点尤其适合使用 Anubis。这些站点的服务器资源有限,面对大规模爬虫请求时几乎没有招架之力,而 Anubis 的资源占用很低,不会给服务器增加太多负担。
配置示例
Anubis 的配置文件使用 YAML 格式,定义了挑战类型、策略规则等参数。下面是一个基础配置:
BIND: ":8923"
DIFFICULTY: 4
SERVE_ROBOTS_TXT: true
TARGET: "http://localhost:3000"
DIFFICULTY 参数控制挑战的难度,数值越大,验证所需的时间越长。一般设置为 4 即可,在安全性和用户体验之间取得平衡。
如果需要对特定机器人放行,可以在策略文件中添加规则:
- name: GOOGLEBOT
action: ALLOW
user_agent_regex: "Googlebot"
使用体验
实际部署下来,Anubis 的表现符合预期。对于普通访客,验证页面出现的频率很低,基本不影响正常浏览。而对于爬虫,拦截效果很明显,服务器的负载压力减轻了不少。
项目文档写得比较详细,从安装到配置都有说明,遇到问题也可以在 GitHub 上提 Issue 反馈。社区响应速度还可以,作者维护得也比较勤快。
如果你的网站正在被 AI 爬虫困扰,Anubis 值得一试。
Issue 反馈。社区响应速度还可以,作者维护得也比较勤快。
如果你的网站正在被 AI 爬虫困扰,Anubis 值得一试。
更多推荐
所有评论(0)