上周三凌晨两点,我被服务器告警短信吵醒:“CPU使用率98%!”
我一个激灵坐起来——我的小破站日均访问不到50人,谁在半夜“爆破”我?
登录后台一看,访问日志里全是陌生IP,User-Agent(用户代理)长得奇形怪状:
python-requests/2.28、curl/7.68、Go-http-client/1.1……
还有一些自称“蜘蛛”的家伙,比如 AhrefsBot、SemrushBot、MJ12bot——但我一个中文小站,它们来干嘛?又不是英文SEO站!
后来才明白:我的服务器,正在被“垃圾流量”白嫖!
哪些“蜘蛛”其实该拉黑?
像 Google、百度、必应 这些正经搜索引擎,当然一般不建议屏蔽,除非你确定不要它。
但下面这些“伪蜘蛛”,对中文站基本没用,反而疯狂爬内容、占资源:
- AhrefsBot(SEO分析工具)
- SemrushBot(竞品分析)
- MJ12bot(第三方SEO爬虫)
- DotBot(常用于采集)
- BLEXBot(低质量爬虫)
SemrushBot、MJ12bot、AhrefsBot、ZoominfoBot、YandexBot、SurdotlyBot、DotBot、CCBot、ClaudeBot、SkyworkSpider、serpstatbot、Amazonbot、gptbot、SearchBot、BLEXBot、Brightbot、duckduckbot、Twitterbot……
它们不带来真实用户,只干一件事:把你网站内容扒走,喂给竞争对手或垃圾站,或者用于训练AI大模型等等。
还有更狠的:批量采集脚本
除了假蜘蛛,还有大量用 Python、curl、Go 写的自动化脚本,伪装成浏览器疯狂请求。
特征很明显:
- User-Agent 里带 python、curl、http-client
- 请求频率极高(1秒几十次)  
- 只抓文章页,不看CSS/JS
它们的目标?免费采集你的原创内容,转手发到其他平台,挣流量分成。
两招轻松拦截,服务器立马安静
方法一:用 Nginx 直接屏蔽(适合技术人员)
在你的 Nginx 配置里加一段规则:
if ($http_user_agent ~* "python|curl|Go-http-client|AhrefsBot|SemrushBot|MJ12bot|DotBot|BLEXBot") {
    return 403;
}
推荐位置:
1. 在代理站点server块中添加(推荐)
# 代理站点:clicksun.cn及其所有子域名
server {
    listen 80;
    server_name clicksun.cn *.clicksun.cn;
    
    # 防范垃圾爬虫 - 添加在这里
    if ($http_user_agent ~* "python|curl|Go-http-client|AhrefsBot|SemrushBot|MJ12bot|DotBot|BLEXBot") {
        return 403;
    }
    
    # 设置允许的最大请求体大小
    client_max_body_size 100M;
    client_body_timeout 360s;
    
    location / {
        proxy_pass http://172.16.11.15:80;
        # ... 其他proxy配置
    }
}
2. 如果要在所有server块生效,可以放在第一个server块中
# 在所有端口添加基础防护
server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;
    
    # 防范垃圾爬虫 - 或者放在这里(对所有域名生效)
    if ($http_user_agent ~* "python|curl|Go-http-client|AhrefsBot|SemrushBot|MJ12bot|DotBot|BLEXBot") {
        return 403;
    }
    
    # 添加安全响应头
    add_header X-Frame-Options "DENY";
    add_header X-Content-Type-Options "nosniff";
    
    # ... 其他配置
}
建议:
推荐放在第二个server块(clicksun.cn对应的块),因为第一个server块主要用于捕获非法请求并返回444,这样配置只会影响您实际运营的网站,不会影响默认server的处理逻辑。
重启 Nginx,这些“假访客”再访问,直接返回 403 Forbidden,连 PHP 都不用跑,省下大量 CPU!
方法二:用宝塔面板防火墙(小白友好)
- 登录宝塔 → 安全 → 免费防火墙(未安装可先装)  
- 进入“User-Agent 黑名单”  
- 把特征值数据贴进去:  (SemrushBot|MJ12bot|AhrefsBot|ZoominfoBot|YandexBot|SurdotlyBot|DotBot|CCBot|ClaudeBot|SkyworkSpider|serpstatbot|Amazonbot|gptbot|SearchBot|BLEXBot|Brightbot|duckduckbot|Twitterbot|python|curl|Go-http-client)  这个是完整版本
 
 
- 保存!从此这些流量连网站门都摸不到。
效果立竿见影
我加完规则第二天,CPU 使用率从 80%+ 直接降到 10%以下,服务器安静得像图书馆。
而且真实用户访问速度更快了——因为资源不再被垃圾流量抢走。
最后提醒
屏蔽不是目的,保护内容和服务器资源才是关键。
如果你也是个人站长、小企业官网、博客主,不妨检查下访问日志——
说不定你的“高负载”,也是一群“看不见的贼”在作祟。
该文章在 2025/10/10 15:44:55 编辑过