Linux 虚拟主机屏蔽User-Agent访问_屏蔽高频抓取 UA完整步骤
很多站长遇到屏蔽高频抓取 UA 直接封 IP,但采集器用代理池 IP 一直换,封不完。UA 屏蔽从请求头入手,不管 IP 怎么换,UA 特征不变就能拦住。Linux 虚拟主机主机配置门槛低,10 分钟写完规则。
SetEnvIfNoCase 方式更简洁:SetEnvIfNoCase User-Agent "badbot|scrapy" bad_bot,Order Allow,Deny,Allow from all,Deny from env=bad_bot。这种方式把 UA 匹配和访问控制分开,规则可读性好,适合长期维护的黑名单。
配置参考(.htaccess 屏蔽指定 UA): ``` RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^.*(BadBot|Scrapy|python-requests|AhrefsBot).*$ [NC] RewriteRule .* - [F,L] ```
CDN 后 UA 正常但 IP 异常是常见坑。UA 匹配一定要加 [NC] 或 ignoreCase=true,否则 BadBot 和 badbot 会被当成两个 UA。正则里的点号要转义成 .,否则 . 匹配任意字符导致误杀。写规则前用在线正则测试工具验证匹配范围。
UA 白名单模式风险高,只适合内容付费站或内测站。白名单漏掉任何一个搜索引擎都会导致该引擎不收录,百度、Google、Bing、360、搜狗、神马都要列全,还要定期检查是否有新搜索引擎出现。普通站点用黑名单模式更安全,只封明确的恶意 UA。
UA 白名单模式风险高,只适合内容付费站或内测站。白名单漏掉任何一个搜索引擎都会导致该引擎不收录,百度、Google、Bing、360、搜狗、神马都要列全,还要定期检查是否有新搜索引擎出现。普通站点用黑名单模式更安全,只封明确的恶意 UA。
UA 屏蔽的进阶做法是结合行为分析。单个 IP 1 分钟内请求超过 60 次且 UA 固定,大概率是采集器,自动加入临时黑名单 24 小时。虚拟主机不支持自动脚本,可以每天用 awk 统计访问日志,把高频异常 UA 的 IP 手动加入黑名单,持续 1 周后采集器会换目标,流量明显下降。

更新时间:2026-08-27 00:39:33