怎么判断网站被恶意爬虫抓取了?
学完这篇,你能在 10 分钟内用访问日志、服务器指标和搜索平台数据,判断网站是不是被恶意爬虫抓取,并区分正常搜索引擎爬虫。
第一步:打开访问日志,先抓高频 IP、UA、URL
这一步要抓出谁访问最多、用什么 User-Agent、盯上了哪些页面,做完你能得到一份可疑 IP 和请求路径清单。Nginx 1.24 默认日志在 /var/log/nginx/access.log,Apache 2.4 在 /var/log/apache2/access.log 或 /var/log/httpd/access_log。执行:
tail -n 5000 /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -20
awk -F'"' '{print $5}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -20
awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -30
第一条看单 IP 请求量,第二条看 UA,第三条看热点 URL。正常搜索引擎 IP 分散、频率稳定;恶意爬虫常见单 IP 几千次、UA 是空或伪装成浏览器。
注意:日志可能被 logrotate 切走,要看
access.log.1或/var/log/nginx/*.log。宝塔面板 8.0.5 可进「网站」>「站点」>「日志」查看。
第二步:看请求频率和时段分布
这一步要判断访问节奏是否像人,做完你能看出是否集中在凌晨、是否每分钟爆量。执行:
awk '{print $4}' /var/log/nginx/access.log | cut -d: -f2-3 | sort | uniq -c | sort -nr | head
更直观的是 GoAccess 1.7+:
goaccess /var/log/nginx/access.log --log-format=COMBINED -o /tmp/report.html
浏览器打开 /tmp/report.html,看 Throughput、Visitors、Requests 面板。若同一分钟请求几十到几百次,且持续数小时,基本不是真人。
注意:别只看一天总量,至少拉 24 小时日志,否则会把促销活动流量误判成爬虫。
第三步:验证 UA 和 IP 是否伪装
这一步要确认自称 Googlebot、Bingbot 的请求是真是假,做完你能排除大量假蜘蛛。命令:
host 66.249.66.1
真 Googlebot 会反查到 crawl-66-249-66-1.googlebot.com,真 Bingbot 通常反查到 search.msn.com。如果 UA 写 Googlebot,反查却是普通 IDC 或家宽 IP,就是伪造。
Cloudflare 用户登录 Dashboard 后,选域名,左侧进「Security」>「Events」,用 User Agent 或 Service 筛选,查看 Bot 事件。
注意:UA 可以随便改,必须做反向 DNS 或查官方 IP 段,不能只信字符串。
第四步:看服务器指标是否被拖垮
这一步要把访问日志和资源占用对上,做完你能判断爬虫是否已影响业务。执行:
top -c
ss -s
netstat -anp | grep ':80' | wc -l
看 Nginx、PHP-FPM、MySQL 是否长期高 CPU,ss -s 的 TCP 连接数是否异常,80/443 并发是否暴涨。若带宽跑满、数据库慢查询增多,同时日志里有高频相同 URL,嫌疑很大。
注意:CPU 高也可能是正常业务或攻击,必须和日志时间点对齐。
第五步:看行为路径是否像爬虫
这一步要检查是否在遍历分页、接口、搜索页,做完你能识别“批量抓取”特征。执行:
grep -E '(/api/|\?page=|search)' /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head
awk '$9==404{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head
如果同一 IP 连续请求 /product/1 到 /product/9999,或大量 404、搜索参数,通常是恶意爬虫或扫描器。
第六步:用官方工具排除正常蜘蛛
这一步要用搜索平台数据做交叉验证,做完你能避免误杀。Google Search Console 左侧进「设置」>「抓取统计信息」>「抓取请求」,看 Googlebot 请求量;Bing Webmaster Tools 进「设置」>「抓取信息」;GA4 进「报告」>「实时」,看来源是否突然出现陌生 referral。
小结
判断网站被恶意爬虫抓取,关键看五点:单 IP 高频、时段异常、UA 伪装、资源占用异常、行为路径批量遍历。至少结合 24 小时日志、反向 DNS、服务器指标和 Search Console 交叉验证,不要凭单次高峰下结论。
原文链接:https://www.gj0.com/thread-1550.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。