不用 CDN 也能挡住大部分 Bot

How to Block Some of the Bots

我分享了一套无需 CDN 即可拦截劣质 Bot 的实战方案。从强制 HTTP/2.0 协议到利用 BGP 工具屏蔽数据中心 IP,再到通过 User-Agent 和 Sec-Fetch-Mode 等客户端信号进行过滤,这些方法能有效识别并阻断 GoogleBot 等过时爬虫。虽然这些策略可能误伤部分真实用户或搜索引擎,但通过仔细测试和调优,你可以在不依赖昂贵服务的情况下,大幅减少服务器上的垃圾流量。

这些方法我使用了很长时间且行之有效,但它们未必适合你,甚至可能误封你的亲戚或老板,请务必在充分测试后自行决定风险。
  1. AussieWog93

    我这么说,是因为我运营着几个面向公众的网站,同时也抓取一些其他网站供自己的工具使用:大家为什么这么在意 Bot?

    WordPress 加上缓存,在最便宜的 VPS 上也能处理每秒约 1000 次请求。一个真正的静态网站大概能处理 10 倍于此的量。

    你们是用 Lambda 之类的东西来托管博客吗?

    这基本上是不是强迫症?是为了漏洞防护?还是源于爬虫确实会影响服务的旧时代习惯?

  2. fxtentacle

    我挺喜欢这个点子:给 169.254.169.254 加一个假的 cpanel 子域名,这样脚本小子们就会开始扫描他们自己的托管提供商,这很可能导致他们被标记或封禁。

  3. userbinator

    如果你试图拦截任何非“批准”的 user-agent,你只是在助长浏览器垄断,并加剧反乌托邦。这正是像 RMS 这样的人几十年前就警告我们的。

    如果流量体积或请求频率确实成了问题,就针对这些进行拦截。

    (是的,我也无法访问该网站。不,我不会顺从。但我敢打赌,任何下定决心的人仍然能突破,就像 DRM 一样。)

  4. CqtGLRGcukpy

    如果你无法阅读此内容,存档副本位于 https://archive.ph/d3236

  5. binaryturtle

    410 状态码,响应体里还带了一个 "Sec-Fetch-Mode:" 字符串。我猜它以为我是 Bot?谢了!

    没什么可读的,也没什么可看的,我走人。(天哪,现代网络真够烂的!)

同日更多故事

2026-07-26