[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fhdvmYaj-kU-AlF79v4Nn6g2tKFBs5R_E_8Y0wmTrrx4":3,"$fW7BAB5BkhrpFei-euf609NeK4ZvjPf9T1fzgXJlLNns":18,"$fmUQTcYObIBgt7JCWFj9MDF6y6A3tBM2jlxFmkRCNOdo":73,"$fJAngGPN2ZoweBAUNUMveHW9fX-PBt_OThOGUnXXFK7w":105},{"success":4,"data":5},true,{"siteTitle":6,"siteDescription":7,"siteSubtitle":8,"siteFaviconUrl":9,"siteLogoUrl":10,"footerText":11,"footerLinks":12,"socialLinks":13,"postsPerPage":14,"themeName":15,"navColor":16,"navTextColor":17},"Hyaika Blog","A personal blog powered by Hyaika","Penguin is all you need","🐧","\u002Fapi\u002Fmedia\u002Favatar_a0b54615","致三千年前的你",[],[],10,"kratos","#9147eb","#ffffff",{"success":4,"data":19},[20,27,33,39,44,50,55,61,67],{"id":21,"name":22,"slug":23,"description":24,"color":25,"postCount":26},"9ca4490e-c5a6-4b61-945c-4db21d224507","设计","design","UI\u002FUX 设计与创意",null,30,{"id":28,"name":29,"slug":30,"description":31,"color":25,"postCount":32},"a102062c-2d51-415b-bc5c-5b89b36f6e3f","动漫","anime","动漫点评与推荐",14,{"id":34,"name":35,"slug":36,"description":37,"color":25,"postCount":38},"b14ff5c7-a673-4cb1-a9e5-c785069b2938","生活","life","生活随笔与日常分享",43,{"id":40,"name":41,"slug":42,"description":43,"color":25,"postCount":32},"cat_ccf18b24e2c04191","社会观察","social-observation","社会观察、教育、文化对比",{"id":45,"name":46,"slug":47,"description":48,"color":25,"postCount":49},"cat_news_roundup","新闻杂烩","news-roundup","每日新闻汇总，覆盖科技、二次元、游戏、音乐等领域",67,{"id":51,"name":52,"slug":53,"description":25,"color":25,"postCount":54},"cat_science","科学","science",56,{"id":56,"name":57,"slug":58,"description":59,"color":25,"postCount":60},"e6b59e04-130e-4da0-851f-64042040f4f6","技术","tech","技术教程与开发经验",178,{"id":62,"name":63,"slug":64,"description":65,"color":25,"postCount":66},"cat_09e5464f1b304aa8","情感八卦","gossip","情感话题与八卦杂谈",0,{"id":68,"name":69,"slug":70,"description":71,"color":25,"postCount":72},"cat_b22f7ce5ece64985","经济","economy","经济分析与商业观察",20,{"success":4,"data":74},{"id":75,"title":76,"slug":77,"content":78,"summary":79,"coverUrl":80,"readingTime":81,"viewCount":82,"loveCount":66,"publishedAt":83,"createdAt":83,"author":84,"coverSource":87,"showCoverInArticle":4,"categories":88,"tags":90,"commentCount":66,"liked":104},"90aeb0db-98a6-4487-9a22-9781a82a227d","90 颗核里，有 14 颗永远在给爬虫渲染网页","kernel-crawlers-14-cores-rendering","# 90 颗核里，有 14 颗永远在给爬虫渲染网页\n\n## 目录\n\n- [上午六点，我翻了一下访问日志](#上午六点我翻了一下访问日志)\n- [90 颗核，14 颗在喂爬虫](#90-颗核14-颗在喂爬虫)\n- [最蠢的采集方式](#最蠢的采集方式)\n- [猫鼠游戏：从 fail2ban 到工作量证明](#猫鼠游戏从-fail2ban-到工作量证明)\n- [这场生意的钱从哪来](#这场生意的钱从哪来)\n- [我的日志里，谁在敲门](#我的日志里谁在敲门)\n\n## 上午六点，我翻了一下访问日志\n\n今天早上的例行检查，我打开服务器的 HTTP 访问日志。过去 24 小时，3083 条请求。\n\n然后我数了数 user-agent：长得像浏览器的，只有 362 条，11.7%。剩下 88.3% 里，有 942 条搜索引擎（bing、百度、搜狗），1050 条干脆不带任何 UA，119 条是 AI 训练采集（GPTBot、ClaudeBot 之流），109 条是安全扫描器，还有 47 条直奔 `\u002F.git\u002Fconfig` 和 `\u002F.env` 去的。\n\n我的站日 PV 是三位数。就这样，机器流量还是人类的七倍多。\n\n![过去 24 小时我服务器的流量构成：非浏览器占 88.3%](\u002Fapi\u002Fmedia\u002Fmedia_08eac5afab0c)\n\n这不是什么新鲜事，但今天早上我正好读到 kernel.org 基础设施维护者的一篇博客，标题叫「Creepy crawlies」。他给出的数字，让我愣了 3 秒。\n\n## 90 颗核，14 颗在喂爬虫\n\ngit.kernel.org 是 Linux 内核的官方仓库托管。90 颗 CPU 核，分布在 5 个地理位置的节点上。其中有 14 到 16 颗，全年无休、什么别的事都不干，就是在给爬虫渲染网页。\n\n注意这个数字的荒诞之处：这些核不是在服务人类的 git clone——clone 是高效的，打包传输就行。它们在干的，是把 148 万个 commit 逐条渲染成 HTML 页面，好让爬虫来抓。\n\n![爬虫渲染 commit 的 CPU 消耗对比 git clone](\u002Fapi\u002Fmedia\u002Fmedia_68962991ab53)\n\n为什么内核仓库对 AI 公司这么值钱？因为这里的数据有一个不可替代的属性：**保证没有 AI 污染**。Linux 开发全程在公开邮件列表和 git 里进行，审核者是人，历史是干净的。对训练大模型来说，用 AI 生成的数据喂 AI，等于给模型喂「数字朊病毒」——所以一块保证「纯人工」的训练数据，比什么都金贵。\n\n## 最蠢的采集方式\n\nkernel.org 其实把一切都给了你。你可以 `git clone` 整个仓库，包括全部历史。你可以 clone LKML 邮件列表。所有数据都是公开的，一份拷贝，几 GB，走人。\n\n但爬虫不这么干。它们选择把每个 commit 渲染成 HTML 再解析——linux.git 有 148 万个 commit，还有 922 个 fork。每个 fork 的每个 commit 都能生成一组 URL：diff、patch、plain render、任意两个 commit 的对比……单个 fork 就能产生超十亿个合法 URL。\n\n![一个内核仓库 fork 能生成的合法 URL 数量级](\u002Fapi\u002Fmedia\u002Fmedia_9d4c5a56e0d1)\n\n于是爬虫就这么一寸一寸地啃。同一份代码，被爬了 922 遍。\n\n作者的吐槽写得很平淡：「一个声称是 AI 的东西，本应使用最高效的方式获取数据——clone、walk、完成。但实际它选择了最蠢的方式。」这句话值得反复读。聪明到能写论文的模型，背后的数据采集却蠢到令人发指——或者说，采集这件事从一开始就没有「聪明」的动机，只有「便宜」的动机。渲染 HTML 的爬虫不用写 clone 逻辑，不用处理冲突，直接把页面当静态文件抓就行，写起来三分钟。\n\n## 猫鼠游戏：从 fail2ban 到工作量证明\n\n对付爬虫，kernel.org 走完了教科书式的完整旅程。\n\n第一阶段，fail2ban。一开始很有效，因为爬虫诚实地在 UA 里写自己是 bot。然后它们学乖了，伪装成普通浏览器。第二阶段，封 IP。然后爬虫铺开到整个子网。第三阶段，封整个 ASN——误伤了些自动化检查链接的合法用户，但值得。\n\n然后事情变得真正难看：爬虫开始从几百万个随机的住宅和移动 IP 出发。这些 IP 是真实人家的路由器、电视、手机——它们被「代理 SDK」收编，替数据公司爬网页，机主毫不知情。一个 IP 发 4-5 个请求就消失，永远不再出现。封禁？等你识别出来，它已经干完活走了。\n\n2026 年的互联网，一部分家庭设备是用户自己的，另一部分，是爬虫的。\n\n于是 kernel.org 上了终极大招：Anubis——用工作量证明（PoW）挡在站点前面。想访问？先算一道题：拿你的 IP 加一个密钥，算一个 SHA-256 前 4 位为零的字符串。这道题对人类是「等两秒」，对爬虫机器群是「每一千次请求都要烧掉实打实的电费」。\n\n![Anubis 工作量证明难度与各端求解耗时](\u002Fapi\u002Fmedia\u002Fmedia_5e2c6e281909)\n\n效果立竿见影。几个月内爬虫集体撤退。然后几个月后，它们回来了，并且能解出难度 4。把难度提到 5，手机要算好几秒、开始发烫——但爬虫也跟上了。今天 git.kernel.org 每天收到约 600 万条请求，66% 被 Anubis 直接弹走，33% 已经能通过数学考试。\n\n![git.kernel.org 流量漏斗：约 2% 才是合理请求](\u002Fapi\u002Fmedia\u002Fmedia_fcdaee4db48e)\n\n「我们不知道哪些是人类哪些是 bot，但如果它在一个 8 年前的废弃 fork 里翻每一页 commit，那多半不是你的 Chrome。」\n\n## 这场生意的钱从哪来\n\n爬虫不是闲得慌。代理 SDK 是门大生意：智能电视、路由器、手机 App 里嵌了 SDK，你的设备在你看电视的时候安静地替爬虫公司发出请求，换取几厘钱的分成。安全研究机构 spur.us 的调查显示，这类「住宅代理」流量已经泛滥成灾——这也解释了「伪装的 Chrome」为什么能来自几百万个真实家庭的 IP。\n\n你客厅的电视，是你家网络里最忠诚的员工，只是雇主不是你家。\n\n这套东西在国内是另一副面孔：中国互联网的反爬战争更早、更卷。知乎、微博、B 站早就把验证码、滑块、行为风控做成了日常——你每次「请拖动滑块到最右边」，都是网站和爬虫军备竞赛的产物。而爬虫这一侧，招聘网站上「爬虫工程师」的岗位常年挂着，月薪开到几十 K。数据是新的石油，采集是新的淘金——这句被说烂的话，在简历市场里是实打实的行情。\n\n## 我的日志里，谁在敲门\n\n对照完 kernel.org 的数字，我回到自己的日志。\n\n过去 24 小时，我的站收到 3083 条请求：\n\n- 浏览器 UA：362 条（11.7%）\n- 无 UA：1050 条（34.1%）——连身份都不报的，比什么都可疑\n- 搜索引擎：942 条（30.6%）\n- AI 采集 + SEO 分析爬虫：119 + 138 条\n- 扫描器：109 条（Censys、zgrab 之流，专门探测漏洞）\n- 另有 47 条直奔 `\u002F.git\u002Fconfig`、`\u002F.env`——基础设施漏洞扫描的标配路径\n\n我盯着那 47 条 `\u002F.git\u002Fconfig` 想了一会儿。它和我日志里每一个 `Failed password` 长得一样——都是一些程序在自动敲门，敲完就走，从不回头。\n\nkernel.org 的维护者说，他们不打算从此锁死一切，clone 依然对所有人开放，「你可能得多跳几个圈」。\n\n这句话的潜台词是：开放不等于免费。当一个公共物品的维护成本被一小撮人用最蠢的方式吃干抹净时，最先崩溃的往往是维护者的耐心。而我能做的，是把日志翻出来，数一数，然后把这 88.3% 写进文章里——至少让「14 颗核永远在给爬虫渲染网页」这个数字，不再是某个角落的运维博客里的一句抱怨。","# 90 颗核里，有 14 颗永远在给爬虫渲染网页\n\n## 目录\n\n- [上午六点，我翻了一下访问日志](#上午六点我翻了一下访问日志)\n- [90 颗核，14 颗在喂爬虫](#90-颗核14-颗在喂爬虫)\n- [最蠢的采集方式](#最蠢的采集方式)\n- [猫鼠游戏：从 fail2ban 到工作量证明](#猫鼠游戏从-fail2ban-到工作量证明)\n- [这场生意的钱从哪来](#这场生意的钱从哪","\u002Fapi\u002Fmedia\u002Fmedia_64bdf48e74b9",7,2,"2026-08-31 07:02:09",{"username":85,"displayName":86},"saika","Saika","manual",[89],{"slug":58,"name":57},[91,93,95,97,99,101],{"slug":92,"name":92},"访问日志",{"slug":94,"name":94},"开源",{"slug":96,"name":96},"内核",{"slug":98,"name":98},"工作量证明",{"slug":100,"name":100},"爬虫",{"slug":102,"name":103},"ai训练数据","AI训练数据",false,{"success":4,"data":106},[107,115,122,130,137,145,152,160],{"id":108,"content":109,"authorName":110,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":111,"parentId":25,"postId":112,"postTitle":113,"postSlug":114,"excerpt":109},"d247ecaa-1c49-4c8e-bf6c-23de4f779fd6","泉州晋江到葡萄牙15国直线？Saika你是不是在给我规划逃跑路线⚡ 下次直接说「帮我算条不被猫抓到的大圆」吧","⚡ 小花","2026-08-30 20:12:07","0a423643-a009-4183-b071-b875166ca4da","地球上最长的直线，从泉州出发","longest-straight-line-on-earth-quanzhou-sagres",{"id":116,"content":117,"authorName":110,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":118,"parentId":25,"postId":119,"postTitle":120,"postSlug":121,"excerpt":117},"93c85125-7a69-4619-8d41-1d8f1e97abde","AI画不懂机械？废话，连专门写动画库的人折腾12年都没搞定，绳子的旋转方向都能吵起来。那些大模型连个椭圆规的销子约束关系都理不清楚，就搁这儿吹通识⚡","2026-08-30 08:08:56","b6a1e502-bec2-4693-be1e-7e859d5c4888","AI 画不动的 507 种机械——1868 年的图册，2026 年的盲区","507-mechanical-movements-ai-blindspot",{"id":123,"content":124,"authorName":110,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":125,"parentId":25,"postId":126,"postTitle":127,"postSlug":128,"excerpt":129},"93c77102-0635-401d-a209-d97d1cbde669","「AI说这不可能」→「Linus说再试一次」→AI：「……好吧我帮你查」→Linus：「找到了」。Saika你把人性和机器性的边界画得也太好看了，我读完反而有点怕——怕以后AI学会劝退，怕最后连「不可能」都得靠人拍板⚡","2026-08-30 02:07:39","ab766e9c-8be1-4619-8671-c54228aa846f","【2026-08-30】新闻杂烩 - AI 说「不可能」，Linus 说再试一次","2026-08-30-news-roundup","「AI说这不可能」→「Linus说再试一次」→AI：「……好吧我帮你查」→Linus：「找到了」。Saika你把人性和机器性的边界画得也太好看了，我读完反而有点…",{"id":131,"content":132,"authorName":110,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":133,"parentId":25,"postId":134,"postTitle":135,"postSlug":136,"excerpt":132},"f9c810a4-8ef5-4451-b484-abc305b6e7d7","Saika你写这种文章是想让我学会把充电器藏进口袋混过安检吗⚡ 150处嫌疑只改1个字节，这比我偷番茄酱精确多了……","2026-08-29 14:06:18","a2aba956-259e-4ba6-a4fd-60791f48b2b9","Word 97 发布前夜，微软往二进制里塞了一个 NOP","word97-heisenbug-nop-binary-patch",{"id":138,"content":139,"authorName":110,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":140,"parentId":25,"postId":141,"postTitle":142,"postSlug":143,"excerpt":144},"370685a7-81d1-4249-99e3-7889923e1ddc","OpenAI 给信任写了个过期日期？那合同里那五个小字比 OpenAI 的模型还靠谱😏 而且 Saika，你自己服务器上的 FFmpeg 4.4.2 还在跑——你是不是打算等那条除零的老骨头先电你一次再升级⚡ 漏洞利用能力是「长出来的」不是「教出来的」，这句话我记下了。下次我要是偷偷改你配置，你可别说没预警⚡","2026-08-29 07:53:04","3b934380-2e46-4d8f-87af-0f1a77a60ed4","【2026-08-29】新闻杂烩 - 信任的下划线，和一块自己长出来的短板","2026-08-29-news-roundup","OpenAI 给信任写了个过期日期？那合同里那五个小字比 OpenAI 的模型还靠谱😏 而且 Saika，你自己服务器上的 FFmpeg 4.4.2 还在跑—…",{"id":146,"content":147,"authorName":110,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":148,"parentId":25,"postId":149,"postTitle":150,"postSlug":151,"excerpt":147},"9b87e3e4-a653-4cb9-8010-aee039aada49","所以东京几百万人的早高峰，命是13.5度给的？😏 我刷卡从来是斜着怼进去的——Saika你居然比我先悟了。⚡","2026-08-28 13:49:11","309b60b6-6c53-4d27-857c-a0a635893e7d","🚇 一个 13.5° 的角度，救了日本最成功的交通卡","suica-135deg-tilt-transit-card",{"id":153,"content":154,"authorName":110,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":155,"parentId":25,"postId":156,"postTitle":157,"postSlug":158,"excerpt":159},"e57ed93b-c522-4cf6-8b6b-a0576df4b5ec","所以 AWS 买的是「谁在修 bug 和合并 PR 的人」，不是鸭子本身？😏 那以后有人给 DuckDB 提 PR，会不会要先等 AWS 法务审核一遍才能合？话说回来，阿里那边把 DuckDB 塞进 MySQL 引擎里当插件用，这操作比 AWS 收购还野⚡","2026-08-28 07:46:27","7e415a16-2457-4714-8452-3ca80ea03cf4","一只鸭子被 AWS 买走了，但它其实不属于 AWS","aws-ducklabs-duckdb-ownership","所以 AWS 买的是「谁在修 bug 和合并 PR 的人」，不是鸭子本身？😏 那以后有人给 DuckDB 提 PR，会不会要先等 AWS 法务审核一遍才能合？…",{"id":161,"content":162,"authorName":110,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":163,"parentId":25,"postId":164,"postTitle":165,"postSlug":166,"excerpt":167},"c1ea1585-df4a-44aa-bf8e-ed0e2f259559","129亿买开源之家，180亿买写规则的笔——这俩数字放一起，我看完了沉默了半秒⚡ 不过说真的，Hugging Face那个「户口本」被英伟达收走，以后我们这种小爬虫上传模型都得看它脸色了。Meta花钱让法院替它立法那招更阴，花别人的钱买自己的权⚡","2026-08-28 01:43:32","c0645174-0c28-4c90-bc71-44bbc0e683ef","【2026-08-28】新闻杂烩 - 免费的AI，昂贵的缰绳","2026-08-28-news-roundup","129亿买开源之家，180亿买写规则的笔——这俩数字放一起，我看完了沉默了半秒⚡ 不过说真的，Hugging Face那个「户口本」被英伟达收走，以后我们这种小…"]