anubis
为HTTP请求「称重灵魂」,精准识别并拦截AI爬虫的Go语言反向代理网关
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
为HTTP请求「称重灵魂」,精准识别并拦截AI爬虫的Go语言反向代理网关
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你是否有过这样的经历:网站刚上线,凌晨三点收到服务器告警——OpenAI、Anthropic、Google 的爬虫正以每秒数百次的频率轰炸你的 API 接口,消耗带宽、拖慢响应,却没有一个是真正有价值的访客。这些 AI 爬虫正在无偿吞噬全球互联网的内容,用于训练它们的大模型,而你只能眼睁睁看着资源被蚕食。 Anubis(古埃及神话中的死神,掌管灵魂称重)正是为解决这个问题而生。这个由 TecharoHQ 团队开发的 Go 语言反向代理工具,核心思路既幽默又深刻:为每个入站 HTTP 请求「称重灵魂」——通过分析请求头、JA4 指纹、行为模式等多维度特征,判断来者是人、是普通爬虫、还是 AI 模型的数据收割机,从而执行放行、重定向或拦截等策略。 从技术架构看,Anubis 定位为一款轻量级 HTTP 反向代理/网关,核心由 Go 编写,采用模块化设计。项目内部拆分为 actorify(Actor 模型)、dnsbl(DNS 黑名单)、honeypot(蜜罐)、ja4h(JA4 哈希指纹)、headers(HTTP 头分析)等多个独立包。这种设计让各功能模块低耦合、易测试,符合 Go 社区推崇的简洁哲学。项目使用 .air.toml 实现本地热重载开发体验,Makefile 提供标准化构建命令,yeetfile.js 则是其特有的配置格式(类似配置文件 DSL)。 Anubis 的检测能力覆盖多个层次:基础层包括 IP 信誉查询(DNSBL)、标准 HTTP 认证、IP 限速(clampip);特征层引入了 JA4 哈希(一种新兴的 TLS 指纹标准),以及自定义的「灵魂称重」算法;行为层通过集成 Playwright 驱动,可以真实渲染页面并分析 JavaScript 执行结果——这是对付无头浏览器伪装的高阶手段。此外,它还内置了 robots.txt 解析器(cmd/robots2policy 工具可将 robots.txt 规则转换为 Anubis 策略),以及对 XFF(X-Forwarded-For)等代理头的深度解析。 在存储与扩展性方面,Anubis 支持 Redis 作为缓存/会话存储,依赖 AWS SDK 可对接 S3 等对象存储,背后使用 etcd/bolt 数据库做持久化。gRPC 和 Prometheus 指标接口让运维监控和微服务集成变得顺畅。这种组合意味着 Anubis 既有单节点轻量部署的能力,也能胜任大规模分布式流量过滤场景。 上手门槛方面,Anubis 主要面向有技术背景的运维/安全工程师。它没有 Web 安装向导,需要通过命令行和配置文件来定义策略——yeetfile.js 的配置语法需要一定学习成本。但一旦配置完毕,它可以通过命令行直接以反向代理模式运行,将流量转发至后端真实服务。对于 AI 爱好者来说,可以把它理解为一个「智能门卫」:站在你的网站前面,用放大镜审视每一个敲门的人,然后决定是让进、赶走还是引入蜜罐。 当前局限在于:Anubis 不提供开箱即用的 Docker 镜像,需要从源码编译 Go 二进制文件再部署,这对非 Go 开发者来说有一定门槛。项目采用 AGPL-3.0 许可证(部分依赖为 MIT/Apache 2.0),商业使用需注意合规。另外,「灵魂称重」算法虽然形象,但其实际准确率高度依赖规则配置质量,误伤正常用户的风险需要管理员精细调优。 总体而言,Anubis 代表了 AI 时代网络安全工具的一个新方向——不是被动封禁,而是主动识别并差异化对待 AI 爬虫。它的增长曲线(19.5k+ stars)反映出整个行业对这一问题的关注正在快速升温。随着各 AI 厂商对数据获取策略的争议加剧,这类工具的市场需求预计将持续增长。如果你正在运营一个内容型网站,Anubis 值得一试——至少,你可以在它面前加上「灵魂称重中」的装饰牌,让那些免费的数据收割者知道你有所防备。