git.kernel.org 现在每天要接住600万次请求,九成八以上是AI爬虫——这是Linux内核系统管理员Konstantin Ryabitsev在博文里给出的数字。更扎心的是,90个跨地域分布的CPU核心里,有14到16个长年只干一件事:把某个commit渲染成HTML页面,喂给一个永远不会说谢谢的爬虫。

这事有意思的地方不在于"AI又缺数据了",而在于爬虫抓数据的方式蠢得反常。Linux内核的完整历史本来就能直接git clone拿走,几十年提交记录,几个命令的事。但爬虫偏偏选了效率最低的路:逐条访问commit,渲染成网页,再解析HTML。

一个仓库,几十亿个网址

linux.git 有约148万个commit,git.kernel.org 上挂着约922个fork。cgit这套网页工具原本是给人类浏览用的,它不仅能看单个commit,还能看任意两个commit之间的diff、patch、blame——这意味着光是一个fork,理论上就能生成天文数字级的合法URL组合。

对搜索引擎爬虫来说,这从来不是问题,因为它们遵守robots.txt,礼貌地只抓该抓的页面。但robots.txt本质上只是一份"君子协定"——RFC 9309把它定义为协作性信号,不是强制访问控制,爬虫读了完全可以选择无视。AI公司的抓取脚本正是这么干的:不管三七二十一,把能生成的URL全试一遍。

git.kernel.org 的算力账本 600万 次请求 / 天 98% 流量来自爬虫 14/90 核心专职渲染爬虫请求

从封IP到智能电视变代理

防守这边的升级路径其实很老套。一开始爬虫老老实实报出User-Agent,封了事。后来它们伪装成浏览器,只能按IP封;IP不够用就整个ASN一起封,顺带误伤几个自动化脚本也认了。

真正让事情失控的,是住宅和移动代理网络的介入。爬虫开始从数百万个真实家庭、移动网络的IP发起请求,每个IP只打几枪就消失,根本来不及封。这背后是"proxy SDK monetization"——一门把消费级设备变成匿名代理节点的生意,已经有报道指出智能电视App是重灾区,用户很可能根本不知道自家电视正在替谁抓数据。

防守方的军备竞赛 封UA 被伪装破解 封IP/ASN 误伤合法脚本 住宅代理来袭 打完即走,封无可封 上线Anubis 难度4→5 难度5被破 目前仍在拉锯

工作量证明防火墙Anubis是这场竞赛里唯一称得上"聪明"的一招:让请求方先算一道哈希谜题,算不出来就进不了站。原理很简单——把抓取成本从"带宽"转移到"算力",逼爬虫自己权衡值不值。上线初期确实立竿见影,爬虫成批放弃转向别处。

但这套逻辑有个致命前提:摩擦必须大于收益。难度从4提到5,普通用户的手机算得发烫,爬虫却照样跟上了。目前的战绩是66%的请求被Anubis在边缘直接挡下,33%算出答案闯了进来——对一个理论上"无AI污染"的干净训练数据源来说,这点算力成本,AI公司显然觉得划算。

有意思的是,连运营方自己对流量规模的统计口径都不完全统一:除了博文里的600万请求/66%拦截率,另一份社媒式的更新给出过每天约700万请求、拦截率约45%的数字。两组数据统计窗口不同,不能简单对齐,但这恰恰说明,连防守方自己都很难对这场攻防给出一个稳定、实时的全景画面——爬虫在暗处,防守在明处,信息优势本就不在这一边。


Anubis的问题不在设计,在经济学。它赌的是"算力成本会拦住穷追不舍的爬虫",可训练数据的商业价值一旦够高,几美分的哈希运算根本不叫成本。这就是为什么难度4挡了几个月,难度5挡的时间只会更短——不是技术打不过技术,是资本打不过摩擦。

  • 风险.工作量证明本质是经济摩擦而非身份识别,一旦AI公司愿意为"干净数据"付出更高算力成本,这道防线会持续被磨穿。

开源社区一直信奉"能clone就别设限"的透明文化,这在没有大模型的年代是美德:代码、邮件列表、提交历史全部开放,谁都能拿走一份完整备份,防止单点失效。可如今这份透明,恰恰成了训练数据市场里最抢手的"无AI污染"认证——干净得让人眼红。开放本身没有错,错的是有人把这份信任当成了不用付成本的资源池。

开源为共享而生,如今却要靠算力摩擦证明自己没白开放。

kernel.org接下来能做的,大概率是收窄cgit能生成的URL空间——关掉一些任意diff、任意commit区间的渲染功能,把访问者更多引导去走git clone这条本来就该走的路。代价是普通用户浏览体验会变差,查个历史commit可能要多点几次。这不是技术升级,是被迫认怂式的止损。

真正该被追问的,其实是那些"智能"公司:如果连怎么高效获取一份公开数据都要靠最笨的办法硬闯,那所谓的AI能力,到底聪明在哪里?