600万次请求里,只有2%是活人
Linux内核项目的代码托管站点git.kernel.org正在被爬虫淹没。维护方给出的数据是:每天约600万次随机提交页面访问请求,经过一系列宽松假设后,合法请求仅占约2%,其余约98%都来自自动化抓取程序。
![]()
这不是一次突发的流量高峰,而是持续性的资源消耗。站点在全球分布5个分布式节点,配置90个CPU核心,其中14至16个核心始终忙于把Git提交转换成HTML页面,专门供爬虫抓取。维护方估算,爬虫相关的渲染工作约占总计算能力的20%。
为什么爬虫这么难缠
Linux主仓库linux.git目前约有148万次提交,git.kernel.org还托管约922个分叉仓库。虽然后端大量复用相同的Git对象,但网页端仍能生成海量可访问链接。除了提交页面,站点还提供补丁、纯文本版本以及任意提交之间的差异对比。单个分叉仓库就能衍生出大量URL,多个分叉叠加后,潜在抓取地址达到数十亿级别。
维护方指出,这些数据本可以通过Git直接克隆并在本地处理。但部分爬虫选择按提交逐页请求并解析HTML,这显著增加了服务器的实时渲染负担。换句话说,爬虫在用最费服务器的方式,拿一份本来可以低成本获取的数据。
封IP失效后,只能上工作量证明
项目早期通过识别User-Agent、封禁可疑IP和网络段来拦截爬虫。但随后自动化请求开始伪装成普通浏览器,并分散到住宅和移动代理网络。维护者称,部分代理IP仅发送4至5次请求便不再出现,这种分布式方式让持续封禁IP几乎失去作用。
Kernel.org随后部署了Anubis,要求访问者完成SHA-256相关的工作量证明。爬虫起初放弃访问,但数月后开始通过难度4和难度5的挑战。难度5会让移动设备花费数秒计算,并带来更高能耗。Anubis能立即拦截约66%的相关请求,但约33%的请求仍能完成计算并抵达主站。
剩下的2%,是真实开发者的代价
这场攻防的最终结果是:合法请求仅占约2%,其余约98%都是爬虫抓取程序请求。维护方没有给出进一步的反制计划,但现有数据已经说明问题——当一个开源基础设施站点被迫把20%的算力花在给爬虫渲染HTML上,真正需要访问代码的开发者,正在为这些自动化流量买单。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.