织梦屏蔽垃圾爬虫方法
站点上线后很快会被各类 SEO 工具蜘蛛、镜像采集器、扫描器骚扰,它们消耗带宽、占用数据库连接、甚至导致源码泄露。本文汇总从软到硬的多种屏蔽方法,按需组合使用。
一、识别需要屏蔽的爬虫
通过日志分析(参考上一篇《织梦如何排查恶意蜘蛛抓取》),常见垃圾爬虫清单:
| UA 标识 | 归属 | 是否屏蔽 |
|---|---|---|
| AhrefsBot | Ahrefs SEO 工具 | 建议屏蔽 |
| SemrushBot | Semrush SEO 工具 | 建议屏蔽 |
| MJ12bot | Majestic SEO | 建议屏蔽 |
| DotBot | Moz SEO | 建议屏蔽 |
| PetalBot | 华为花瓣 | 看是否需要 |
| Bytespider | 字节跳动 | 看是否需要 |
二、robots.txt 屏蔽(第一层)
对遵守协议的爬虫有效,是基础手段:
User-agent: AhrefsBot
Disallow: /
User-agent: SemrushBot
Disallow: /
User-agent: MJ12bot
Disallow: /
User-agent: DotBot
Disallow: /
User-agent: PetalBot
Disallow: /
User-agent: *
Disallow: /dede/
Disallow: /plus/
Allow: /
robots.txt 是公开文件,不要在里面写敏感目录路径,反而泄露后台地址。敏感目录用 Nginx 直接 deny。
三、Nginx UA 屏蔽(第二层)
map $http_user_agent $bad_bot {
default 0;
~*AhrefsBot 1;
~*SemrushBot 1;
~*MJ12bot 1;
~*DotBot 1;
~*PetalBot 1;
~*YisouSpider 1;
~*crawler 1;
}
server {
if ($bad_bot) {
return 403;
}
}
用 map 比多个 if 更清晰,且性能更好。
四、Nginx IP 屏蔽(第三层)
对不换 UA 但固定 IP 的爬虫:
location / {
deny 1.2.3.4;
deny 5.6.7.0/24;
deny 10.0.0.0/8;
allow all;
}
配合宝塔“系统防火墙 - IP 规则”可视化添加,支持批量导入。
五、Nginx 限速(第四层)
limit_req_zone $binary_remote_addr zone=antibot:10m rate=15r/s;
server {
limit_req zone=antibot burst=20 nodelay;
limit_conn conn 20;
}
对高频抓取直接限流,正常用户无感。
六、宝塔网站防火墙(第五层)
宝塔 WAF 提供可视化拦截:
- “UA 过滤”:添加恶意 UA 关键词,自动 403;
- “IP 黑名单”:支持按频次自动拉黑;
- “频率限制”:单 IP 每分钟请求超过 N 次自动拦截;
- “爬虫识别”:内置主流爬虫白名单,避免误伤百度谷歌。
七、CDN 层屏蔽(推荐)
接入 CDN 后在 CDN 控制台配置 UA/IP 黑名单,恶意请求在 CDN 节点就被拦截,不消耗源站带宽。主流 CDN 还支持“频次访问控制”与“人机验证”,对扫描器效果显著。
八、屏蔽后台目录
织梦 /dede/ 后台是扫描器重点目标:
location /dede/ {
allow 1.2.3.4; # 你的办公 IP
deny all;
auth_basic "Admin";
auth_basic_user_file /www/server/nginx/passwd;
}
同时把 /dede/ 改名为不易猜测的目录,并修改 /include/common.inc.php 里的 $cfg_df_admin_dir。
九、屏蔽常见扫描路径
location ~ ^/(\.env|\.git|\.svn|phpmyadmin|pma|admin|wp-admin|wp-login) {
return 444;
}
444 表示 Nginx 直接断开连接,不返回任何内容,节约带宽。
十、注意事项
- 封禁前确认 IP/UA 不是百度、谷歌、搜狗、360、必应等正规蜘蛛;
- UA 关键词不要写太宽泛(如
bot),会误伤 Googlebot; - 限速规则要给正规蜘蛛留余量,可在 map 里把白名单 IP 设为 0;
- 定期复查日志,垃圾爬虫会换 IP/UA,黑名单要持续更新。
屏蔽垃圾爬虫是多层防御体系,建议把 robots → Nginx UA → IP 黑名单 → CDN → WAF 五层叠加使用。每周回看一次拦截日志,把新增恶意 UA 及时加入黑名单,让站点带宽与抓取配额集中服务于真正的用户与正规搜索引擎。