一、AI 爬虫正在把你的服务器吃垮
你有没有发现最近服务器负载越来越高?明明流量没涨多少,CPU 和带宽却一直在高位运行。
罪魁祸首就是 AI 爬虫。
ChatGPT、Claude、Perplexity、Gemini、文心一言、通义千问——几乎每家大模型都在全网爬取数据训练模型。它们的爬虫不像搜索引擎那样”绅士”,而是:
- 并发高:同时发起数百个请求
- 频率快:毫秒级别连续请求
- 不守规则:很多 AI 爬虫根本不读 robots.txt
- 伪装性强:伪造 User-Agent 冒充真实用户
一个站长朋友跟我吐槽:他的资讯站一天被 GPTBot 爬了 30 万次,服务器 CPU 直接干到 95%,正常用户访问卡成狗。
二、先看看你的服务器是不是被 AI 爬虫打了
登录服务器,跑一下这条命令:
bash
# 查看访问日志中的 User-Agent 分布
awk -F'"' '{print $6}' /www/wwwlogs/access.log | sort | uniq -c | sort -rn | head -30
如果看到以下这些关键词大量出现,说明你的网站正在被 AI 爬虫狂抓:
GPTBot
Claude-Web
PerplexityBot
Bytespider
Amazonbot
anthropic-ai
Google-Extended
CCBot
再看看带宽消耗:
bash
# 查看实时带宽占用
nload
如果带宽被占满但 PV 没涨,基本就是爬虫在吃你的资源。
三、为什么 Nginx 拦截 AI 爬虫效果很差
很多站长第一反应是改 Nginx 配置封 UA:
nginx
if ($http_user_agent ~* "GPTBot|Claude|PerplexityBot") {
return 444;
}
这个方法现在已经基本没用了。 原因有三个:
第一,AI 爬虫会伪造 UA。 大部分爬虫已经学会伪装成 Chrome 浏览器,UA 根本看不出来。
第二,Nginx 层面拦截是在源站,流量已经到达服务器了。 带宽一样被吃掉,CPU 一样被占满。
第三,规则维护不过来。 AI 产品每周都有新的,你不可能手动一个个追。
要真正解决问题,必须在流量到达服务器之前就把 AI 爬虫拦住。这就是云 WAF 做的事。
四、推荐方案:百度云防护 WAF 拦截 AI 爬虫
百度云防护 WAF 在流量进入源站之前就完成识别和拦截。AI 爬虫的请求在 WAF 节点就被处理掉了,根本到不了你的服务器。
4.1 核心拦截能力
JA3/JA4 TLS 指纹识别 AI 爬虫可以伪造 UA,但伪造不了 TLS 指纹。每个客户端在建立 HTTPS 连接时都会暴露自身的 TLS 指纹(JA3),百度云防护通过指纹精准识别出非浏览器的自动化工具,不管它怎么伪装 UA 都没用。
智能 Bot 行为分析 AI 爬虫的行为模式和人不一样——访问间隔太规律、页面停留时间太短、访问深度太广。百度云防护的 Bot 识别引擎通过行为分析自动识别并拦截。
自定义规则灵活配置 你可以自定义规则,对特定路径、特定指纹进行精准拦截。
4.2 和 Nginx 拦截的对比
| 方案 | 拦截位置 | 效果 | 服务器压力 |
|---|---|---|---|
| Nginx UA 拦截 | 源站 | 差(伪造 UA 就绕过) | 流量已到服务器 |
| 百度云防护 WAF | 云端节点 | 好(指纹+行为双重识别) | 流量在节点被拦截 |
五、实操流程:百度云防护拦截 AI 爬虫
5.1 接入百度云防护(5 分钟)
步骤 1:注册账号 访问百度云防护官网,注册百度智能云账号。
步骤 2:添加站点
控制台 → 站点管理 → 添加站点
域名:www.yourdomain.com
源站 IP:你的服务器 IP
协议:HTTP/HTTPS
步骤 3:修改 DNS 解析
域名注册商后台 → DNS 解析
将 www.yourdomain.com 的 A 记录
改为百度云防护提供的 CNAME 地址
TTL:600 秒
步骤 4:等待生效
bash
# 验证 DNS 是否生效
ping www.yourdomain.com
# 应返回百度云防护节点 IP,不是你的源站 IP
5.2 开启 AI 爬虫拦截
开启 Bot 防护
控制台 → 安全策略 → BOT 防护 → 开启
选择:智能 BOT 识别
处置动作:JS 挑战 或 拦截
开启 JA3 指纹防护
控制台 → Web防护 → 自定义防护 → 新建规则
规则名称:拦截AI爬虫指纹
匹配条件:JA3 等于已知爬虫指纹列表
处置动作:拦截
封禁时长:1440 分钟(24 小时)
不知道怎么获取 JA3 指纹?可以先分析拦截日志,把高频出现的异常指纹提取出来加入规则。
配置自定义频率限制
控制台 → Web防护 → CC 防护 → 精准自定义 CC
匹配条件:URI 包含 /
统计维度:JA3
阈值:10 次 / 200 秒
处置动作:拦截 3600 秒
这条规则的意思是:同一个 JA3 指纹在 200 秒内请求超过 10 次,就封禁 1 小时。AI 爬虫因为用同样的库和工具,JA3 指纹通常固定不变,一旦触达阈值就被自动封禁。
5.3 配置爬虫白名单(放行搜索引擎)
注意不要把搜索引擎也拦了:
控制台 → 访问控制 → IP 白名单
添加:
Baiduspider IP 段
Googlebot IP 段
Bingbot IP 段
或者直接在 Bot 防护中开启”搜索引擎白名单”选项。
六、拦截效果验证
接入后第二天,查看拦截数据:
控制台 → 统计报表 → 安全事件
筛选:BOT 防护
预期结果:看到大量 AI 爬虫被拦截的记录
同时查看服务器负载:
bash
top
正常情况下,CPU 占用应该从之前的 90%+ 降到 20% 以下。
七、其他辅助手段
除了 WAF 拦截,你也可以配合以下措施:
更新 robots.txt
txt
User-agent: GPTBot
Disallow: /
User-agent: Claude-Web
Disallow: /
User-agent: PerplexityBot
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: Bytespider
Disallow: /
但要注意,robots.txt 是君子协议,不遵守的爬虫照样爬。这只是辅助手段,不能依赖。
CDN 缓存静态资源 把图片、CSS、JS 等静态资源的缓存时间设置长一些(7-30 天),即使被爬取也不会打到源站。百度云防护自带 CDN 加速,按以下配置:
控制台 → 站点设置 → 缓存配置
静态文件缓存:7 天
八、总结
AI 爬虫的问题是每个站长迟早都要面对的。你在浏览器里问 AI 一句”帮我总结一下”,背后可能是你的服务器在替它出这份钱。
核心策略就三条:
- 不要指望 Nginx 封 UA 能解决问题——AI 爬虫会伪装
- 在流量到达服务器之前就拦掉——用云 WAF
- JA3 指纹 + 行为分析 + 频率限制三层过滤——AI 爬虫基本过不来
百度云防护 WAF 基础版 299 元/月,通过主机吧购买享 7.5 折(299元/月),免费配置指导,有问题随时问。
主机吧商店 – 百度云防护 WAF: https://www.zhujib.com/shop/26864.html
