Linux 内核官方 Git 服务器 git.kernel.org 每天收到约 600 万次查看随机 commit 的请求,其中合法流量只占约 2%。kernel.org 基础设施负责人 Konstantin Ryabitsev 在官方博客发文披露了这组数字,并完整复盘了这场持续一年多的攻防。文首结论只算了一笔账:五个地理分布式节点共 90 个 CPU 核心里,有 14 到 16 个核心常年只做一件事,把 git commit 渲染成 HTML 页面喂给爬虫。这些算力本可以用于服务全世界的内核开发者。

渲染 commit 的 CPU 时间,超过了其他所有合法访问的总和
Ryabitsev 在文首给出的 TL;DR 是:渲染 git commit 给爬虫看的 CPU 开销,已经超过站点其他所有合法访问(包括 git clone)的总和。任意时刻,五个分布式节点上有 14 个核心在做这件事,占总容量的 20%,而且这个数字的曲线是脉冲式的——爬虫像蝗虫一样成群压上来,把系统压垮,等恢复后再卷土重来。
问题出在爬虫选择的数据获取路径上。Linux 内核的全部开发历史本来就是开放的:linux.git 约 148 万个 commit,任何人一条 git clone 命令就能拿到完整历史,连 LKML 邮件列表存档都可以整个克隆走。对一个 LLM 来说,这是教科书级的高质量训练数据,因为它被保证是"纯前 AI 时代"的内容。但爬虫没有走 clone 这条高效路径,而是选择了最笨的一种:逐个请求 HTML 渲染的 commit 页面,再解析 HTML。
更糟的是 URL 空间的规模。git.kernel.org 上有 linux.git 的 922 个 fork,后端存储层面这些 fork 共享绝大部分对象,成本几乎为零;但换成爬虫视角,这就是 922 份重复的 148 万个 commit,再叠加 patch、diff、plain text 等多种渲染格式,单个 fork 就能生成数十亿个有效 URL。爬虫在做的事情,是花巨额请求量去抓 922 份彼此重复的数据。
四轮攻防:从封 UA 到住宅代理
这场攻防的演化路径清晰地展示了为什么传统反爬手段逐个失效。
第一轮,爬虫在 User-Agent 里自报家门,站点用 fail2ban 封禁,简单有效。第二轮,爬虫开始伪装成普通浏览器 UA,站点改为按 IP 封禁——一个试图遍历某个八年没更新的老 fork 里所有 commit 的 IP,显然不是真实用户。第三轮,爬虫扩散到整个子网,站点升级为按 ASN(自治系统)封禁整个云厂商段,代价是偶尔误伤跑在云上的合法自动化工具。
第四轮才是真正的分水岭:爬虫流量开始来自数百万个随机的住宅或移动网络 IP,每个 IP 只发四五个请求就消失。封禁失去了意义,因为等你确认它是机器人时,它已经抓完离开了。这背后是一条成熟的灰色产业链:代理 SDK 变现(proxy SDK monetization)。智能电视、IoT 设备的应用里预装代理 SDK,把用户家庭带宽包装成住宅代理池出售。Ryabitsev 点名引用了安全公司 Spur 的研究:智能电视应用正在成为住宅代理的来源。你的电视可能正在替某个 AI 公司的爬虫转发请求。
Anubis:把验证成本转嫁给机器
一年前,kernel.org 部署了 Anubis。这是开发者 Xe Iaso 创建的开源反爬工具,思路是用工作量证明(Proof of Work)替代验证码:访问者的浏览器需要计算一个哈希谜题,比如找到使 SHA-256 结果带 4 个前导零的字符串,通过后获得通行凭证。对偶尔访问一次的人类,这道计算在手机上几秒内完成、几乎无感;对每分钟发起数千请求的爬虫,成本被放大到不可接受。
效果立竿见影。爬虫直接放弃,转向无防护的站点,kernel.org 迎来几个月的平静。然后是循环的开始:爬虫接入了无头浏览器解谜能力,难度 4 被攻破;kernel.org 把难度升到 5,手机用户解谜时间变长、机身发热,真实用户开始感到烦躁;几个月后,难度 5 也被攻破了。
Ryabitsev 给出的现状数据是:每天约 600 万次请求查看随机 commit,66% 在 Anubis 挑战前被直接挡回,但 33% 的流量现在会认真解题通过挑战。在放宽口径的假设下,真实人类流量只占全部请求的约 2%。工作量证明没有输——它把攻击成本拉高了一个数量级,但对手的算力预算足够大,33% 的通过率意味着这条防线只能减管,无法杜绝。
Anubis 的一个设计细节值得展开:解谜通过后服务器签发有效期一周的 JWT 存入 cookie,后续请求凭 cookie 直接放行;为防 cookie 被批量盗用,Anubis 会随机抽查部分请求重新验证,发现伪造立即吊销。Arch Wiki、GNOME、FFmpeg、Codeberg 等站点都部署了它。
行业大盘:机器流量过线,爬虫收入却归零
kernel.org 的遭遇有行业级的背景数据。Cloudflare Radar 的数据显示,2026 年 6 月,自动化请求占网页 HTML 流量的 57.5%,人类请求 42.5%,机器流量首次超过人类。Fastly 2026 年第二季度的报告则显示,AI 爬虫占全部 AI bot 流量的近 80%,其中 Meta 一家占 AI 爬虫流量的 52%,Google 23%,OpenAI 20%;AI 爬虫活动近 90% 集中在北美。
真正失衡的是收益端。传统搜索引擎爬虫抓取网页、建索引、给网站带回搜索流量,爬取和回报之间存在交换关系;AI 训练爬虫抓走内容后不给网站带来任何回流访问。Cloudflare 按行业拆分的数据显示,某些垂直领域 Anthropic 爬虫的"抓取转访问比"高达 8800:1,OpenAI 为 401:1,Perplexity 为 88:1。数字因统计口径和行业而异,但方向一致:训练数据抓取基本是纯索取。
协议层的回应:402 Payment Required
在 kernel.org 用 PoW 死守的同时,行业正在给这个问题补上商业基础设施。Cloudflare 在 2025 年 7 月内测、随后正式推出的 Pay-per-Crawl 机制,允许网站对 AI 爬虫按次收费:爬虫请求内容时,Cloudflare 返回 HTTP 402(Payment Required)状态码并附上价格信息,爬虫付款后重复请求即可获得内容。网站可以对每个爬虫单独配置:免费放行、按次收费、或直接拒绝。
配套的 x402 协议把这套流程标准化。它复用了 HTTP 标准里闲置多年的 402 状态码,支付凭证随请求头传递,单笔金额可以小到一分钱的零头,天然适配稳定币结算。2026 年,Cloudflare 与 Coinbase 共同成立了 x402 基金会,并把这套机制扩展成 Monetization Gateway:不只内容可以计费,API、数据集、MCP 工具调用都可以按同样的模式向机器调用方收费。协议设计的一个关键点是买方无需在卖方注册账号,支付凭证本身就是身份。
对 Ryabitsev 这样的基础设施维护者,这套机制暂时帮不上忙——kernel.org 的立场是数据永远免费向所有人开放,引入收费与其使命冲突。他们选择的路径是收缩匿名访问的功能面:关掉昂贵的渲染选项、减少可爬取的 URL 数量、给高成本操作加门槛。Ryabitsev 明确承诺数据会继续以 git clone 的形式向所有索取者开放,只是获取过程会需要多绕几道弯。
爬虫经济学:防御的目标是改写对方的成本函数
把 kernel.org 的战报和行业数据放在一起,这场博弈的结构变得清晰。
爬虫一方的成本结构:住宅代理流量按量计费,无头浏览器解 PoW 消耗 CPU 和内存,工程上还要持续跟进 Anubis 等工具的版本变化。防御一方的策略从来只有一件事:把单次抓取的成本抬高到临界点——Anubis 作者 Xe Iaso 对此的表述是让爬虫变得不经济,当原本一天能扫几千万页的成本预算只够扫几十万页,AI 公司会把预算挪向无防护的站点。
这解释了 Anubis 现象级的扩散速度:联合国网站、Codeberg、GNOME、Arch Wiki 相继部署。对开源基础设施而言,2025 年 4 月以来这轮部署潮的起点正是爬虫流量把社区服务器压垮的各类事故。kernel.org 这份数据的价值在于它把成本量化了:20% 的算力、14 个核心、600 万日请求、2% 的真实用户。防御方要保护的,就是这 2%。
后续的走向取决于两端:一端是生成式 AI 的资本开支周期,训练数据需求随模型迭代节奏波动;另一端是 x402 这类付费抓取协议能否形成规模市场,让抓取行为完成向结算行为的切换。kernel.org 选择的路径是第三种:功能收缩加永久免费。三条路径并行,站点运营者按自己的约束选边。
参考来源:
- Konstantin Ryabitsev, Creepy crawlies, people.kernel.org, 2026-08-29
- Ryabitsev: Creepy crawlies, LWN.net
- Spur: Smart TV apps and residential proxy SDKs
- Cloudflare Radar: automated traffic share(2026-06-03 数据)
- Fastly Q2 2026 Threat Research
- Cloudflare: AI crawler traffic by purpose and industry
- Cloudflare: Introducing pay per crawl
- Cloudflare: Monetization Gateway 与 x402