Kernel.org被爬虫逼到上工作量证明:每天600万次请求,98%是机器人
项目分享 0 次阅读

Kernel.org被爬虫逼到上工作量证明:每天600万次请求,98%是机器人

做开源项目的朋友,大概都体会过被爬虫支配的恐惧——自己辛苦维护的站点,流量全是机器人刷出来的,看着后台数据挺热闹,实际一个真人没有。但Kernel.org这个量级,属实是夸张到了另一个次元:每天约600万次请求,98%疑似来自爬虫。

Kernel.org被爬虫逼到上工作量证

每天600万次请求,服务器一半算力喂了爬虫

git.kernel.org是Linux内核项目的代码托管站点,全球分布5个节点,配置了90个CPU核心。其中14到16个核心,一天到晚啥也不干,就忙着把Git提交记录转换成HTML页面,供爬虫来抓。维护方估算,爬虫相关的渲染工作,占了总计算能力的20%左右。

Linux主仓库linux.git目前有大约148万次提交,站点还托管着约922个分叉仓库。单个分叉仓库就能衍生出海量URL,多个叠加起来,潜在抓取地址是数十亿级别。这数字,听着都头皮发麻。

爬虫为什么这么执着

最气人的是啥?这些数据明明可以通过git clone直接拉下来在本地处理,又快又省资源。可有些爬虫偏不,非要按提交一页页请求、解析HTML,硬生生把服务器实时渲染的负担拉满。

维护方早期靠识别User-Agent、封禁可疑IP来拦截,还挺有效。后来爬虫学精了——伪装成普通浏览器,分散到住宅和移动代理网络里。有些代理IP只发4到5次请求就消失,你连封都来不及封。

被逼到上"工作量证明"

实在没辙,Kernel.org部署了Anubis——要求访问者先完成SHA-256相关的工作量证明,相当于"答题进门"。刚开始爬虫确实放弃了,可几个月后人家又回来了,开始攻克难度4、难度5的挑战。难度5能让手机算上好几秒,还费电。

效果还是有的:Anubis能立刻拦截掉约66%的相关请求,但剩下33%照样算完题进来。维护方做了宽松假设后估算,合法请求只占git.kernel.org流量的2%左右——剩下98%,全是爬虫。

给独立开发者的几点启示

这事看着是Linux内核的"家事",但对做个人项目、小站点的朋友特别有参考价值。

第一,反爬是场军备竞赛。你封IP,人家换代理;你上验证码,人家上算力。永远别指望一劳永逸。第二,日志和流量分析得重视,不然你都不知道自己的服务器在给谁打工。第三,数据接口能开放就开放——人家爬你,往往是因为没有更好的获取方式。

说白了,Kernel.org这种顶级基础设施都得跟爬虫斗智斗勇,咱们做小项目的,心态放平,该上的防护上起来,剩下的,就交给时间吧。

分享

评论 (0)

评论通过后显示

暂无评论,来写第一条吧 ✍️