个人网站被爬虫刷流量,简单防护方案

个人网站被爬虫刷流量,最直接的影响是带宽跑满、服务器负载升高,甚至产生额外费用。
本文面向零基础站长,从判断是否被恶意爬虫攻击开始,逐步给出Nginx限速、防火墙封禁、CDN防护等可落地的操作方案,帮你用最低成本挡住大部分刷量行为。

先判断是不是真被刷了

不要一看到流量上涨就认定是爬虫,先看访问日志确认特征。

登录服务器,用以下命令查看访问量最高的IP:

awk '{print $1}' /www/wwwlogs/access.log | sort | uniq -c | sort -rn | head -20

如果某个IP或某段IP的请求数远超正常用户,且User-Agent是python-requestscurlGo-http-client等非浏览器标识,基本可以确定是爬虫。

再看请求频率:

awk '{print $1}' /www/wwwlogs/access.log | sort | uniq -c | sort -rn | awk '$1>100 {print}'

统计单IP每秒请求数,正常用户不会超过5次/秒,超过20次/秒的几乎都是爬虫。

关键结论:单IP每秒请求超过20次,或User-Agent明显非浏览器,就可以按恶意爬虫处理。

Nginx层限速与封禁

这是最直接且对正常用户影响最小的方案。

限制单IP请求频率

在Nginx主配置的http块中添加限速区域:

limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s;

然后在网站配置的server块中引用:

location / {
    limit_req zone=perip burst=20 nodelay;
    limit_req_status 429;
}

含义是单IP每秒最多10个请求,突发允许20个,超出返回429状态码。
宝塔面板用户可在“网站-设置-配置文件”中直接修改。

封禁恶意User-Agent

server块中添加:

if ($http_user_agent ~* (python-requests|curl|Go-http-client|Scrapy|Bytespider)) {
    return 403;
}

注意不要误封BaiduspiderGooglebot,除非你确认不需要搜索引擎收录。

避坑:if指令在location中使用有性能问题,建议放在server层级,且只做简单判断。

防火墙与CDN补充防护

如果Nginx层拦截后仍有漏网之鱼,可以叠加系统防火墙规则。

使用iptables封禁高频IP:

iptables -I INPUT -s 恶意IP -j DROP

批量封禁C段:

iptables -I INPUT -s 1.2.3.0/24 -j DROP

宝塔用户可在“安全-防火墙”中添加IP黑名单。

如果网站已接入CDN,优先在CDN控制台设置:

  • 频率限制:单IP每分钟请求数上限
  • User-Agent黑名单:拦截常见爬虫标识
  • CC防护:开启中等或严格模式

判断条件:如果服务器直接暴露公网IP,iptables是最后一道防线;
如果已用CDN,优先在CDN层拦截,避免流量打到源站。

验证防护是否生效

配置完成后,用以下方式确认:

  1. curl模拟高频请求,看是否返回429或403:
for i in $(seq 1 50); do curl -s -o /dev/null -w "%{http_code}\n" https://你的域名/; done
  1. 观察日志中429和403的比例是否上升,正常用户请求是否不受影响。
  2. 查看服务器带宽监控,确认流量回落到正常水平。

操作结果:正常用户访问不受影响,恶意爬虫请求被限速或拒绝,带宽和负载明显下降。

常见疑问

限速会不会影响搜索引擎收录?

主流搜索引擎爬虫有独立IP段和User-Agent,建议在Nginx中为BaiduspiderGooglebot单独放行,不参与限速。

封禁IP后爬虫换IP怎么办?

短期封禁可缓解,长期需要结合频率限制和CDN的智能防护。
如果攻击持续,建议开启CDN的CC防护并调高等级。

小网站有必要用CDN吗?

如果服务器带宽有限且经常被刷,CDN的流量清洗能力比单机防护更有效,成本通常低于直接升级带宽。

日志文件太大怎么快速分析?

可以用goaccess工具实时查看,或按天切割日志后只分析最近几小时的数据。
宝塔面板自带日志分析功能,路径在“网站-日志”中。

防护方案不需要一次全上,建议先做Nginx限速和User-Agent封禁,观察效果后再决定是否叠加防火墙或CDN。
每调整一次配置,记得用nginx -t测试语法并重载服务。

分享到:
上一篇
新手建站网站打开慢,图片与静态资源优化
下一篇
小白建站网站备份实操,防止源码丢失
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意