爬虫抓取失败防火墙与站点配置整改清单

爬虫抓取失败是网站运营中常见问题,背后原因往往落在两个方向:防火墙把爬虫IP挡在了外面,或者站点配置让搜索引擎无法正常访问。
下面按实际排查顺序给出整改清单,每一步都附带命令或后台操作路径,跟着做就能定位并解决问题。

先检查服务器防火墙是否把爬虫IP误拦

很多云服务器默认开启了操作系统层面的防火墙(iptables/firewalld)或安全组规则。
先确认当前防火墙状态:

  • 查看 iptables 规则:sudo iptables -L -n --line-numbers 如果看到大量 DROP 规则,重点关注是否有针对知名搜索爬虫IP段的限制(如 Googlebot 的 66.249.x.x、Baiduspider 的 220.181.x.x)。
  • 临时关闭 firewalld 测试:sudo systemctl stop firewalld (注意:这只是为了验证问题,排查后要重新开启并设置白名单)。
  • 如果是阿里云/腾讯云安全组,登录云控制台 -> 安全组 -> 规则管理,检查入方向是否放行了所有来源(可限制端口但不能封死IP段)。如果安全组规则内有“拒绝所有”或“仅允许特定IP”的策略,先临时添加一条放行 0.0.0.0/0 的 HTTP/HTTPS 规则做验证。

验证方法:
用 curl 模拟百度爬虫请求:curl -A "Baiduspider" -I http:
//你的域名
如果能正常返回 200 或 301(非403、
502),
说明服务器防火墙层面没问题。

再确认网站面板防火墙与安全软件放行规则

如果你使用宝塔面板、WDCP 或类似管理工具,面板内置的防火墙(Nginx 防火墙、Apache 防火墙)经常会加入屏蔽爬虫的规则。

  • 宝塔面板路径:面板 -> 安全 -> 防火墙 -> 查看“全局过滤规则”和“IP 黑名单”。如果看到有对搜索引擎UA的屏蔽规则,先临时关闭,或者将搜索引擎官方IP段加入白名单。
  • 网站设置 -> “屏蔽状态码”或“攻击防护”中检查是否开启了“非浏览器访问”拦截,这个选项容易误伤爬虫(爬虫 User-Agent 不含 Mozilla 特征)。建议改为“仅拦截常见攻击UA”,并单独放行 Baiduspider/Googlebot。
  • 如果安装了宝塔的“Nginx 防火墙付费插件”,在其“人机验证”设置中确认“搜索引擎爬虫”是否被强制开启验证(爬虫无法通过滑动验证)。需要关闭此项或勾选“信任搜索引擎UA”。

检查站点配置文件与伪静态规则是否有误

伪静态规则、rewrite 规则写错会导致爬虫抓取时返回 404 或 301 死循环。

  • 在网站根目录下找一个实际存在的页面(如 /about.html),用爬虫UA访问看是否正常:curl -A "Googlebot" -I http://你的域名/about.html 如果返回意外状态码,去检查 nginx 配置中的 rewrite 规则。
  • 常见错误:伪静态规则里强加了 if ($http_user_agent ~* (Baiduspider|Googlebot) ) { rewrite ... } 这类定向规则,导致爬虫拿到非正常页面。建议删除所有针对搜索引擎UA的特殊rewrite,除非你明确知道要做什么。
  • 对于 Wordpress 站点,检查 .htaccess(Apache)或 nginx 伪静态文件,确认没有对爬虫IP加 deny 指令。

验证 robots.txt 与 HTTP 响应头是否允许抓取

很多爬虫抓取失败是因为 robots.txt 禁止了某些路径,或者服务器返回了 X-Robots-Tag: noindex。

  • 访问 https://你的域名/robots.txt 在浏览器确认内容。通常允许所有爬虫抓取全部内容是:User-agent: * Disallow: (不允许留空则默认禁止所有)。如果 Disallow 写了 /,爬虫就无法抓取任何页面。
  • 检查 HTTP 响应头:curl -I https://你的域名/robots.txt 确保状态码是 200 而非 403。如果返回 403,说明防火墙或面板规则拦截了 robots.txt 的访问,需要在防火墙放行该文件。
  • 用站长工具(如百度资源平台“抓取诊断”)提交一个普通页面,查看抓取快照中返回的 HTTP 头是否包含 X-Robots-Tag: noindex, nofollowX-Robots-Tag: none。如果有,检查是否在 Nginx 或面板中全局设置了这个响应头,需要移除。

高频问题与避坑提醒

问:我已经放行了所有防火墙,为什么爬虫还是抓取失败? 答:检查 CDN 或云防护(如 Cloudflare、阿里云 WAF)的规则。
CDN 可能拦截了非浏览器的请求,需要将爬虫IP段或UA加入白名单。

问:宝塔防火墙里没有看到屏蔽规则,但爬虫就是被拦了。 答:可能是宝塔的“系统防火墙”插件(免费版)的“禁止境外IP访问”功能打开了,这个功能会阻挡海外搜索爬虫(如 Googlebot)。
关闭该功能或将爬虫IP段加入白名单。

避坑提醒: 不要为了验证问题而关闭安全组或防火墙后长时间不恢复。
建议在整改时每改一项就做一次抓取测试,确认问题解决后立即恢复防护策略,再通过“IP 白名单”的方式仅放行搜索引擎IP段。

如果你正在处理爬虫抓取失败的场景,建议按本文顺序先检查防火墙、再检查站点配置,遇到异常时重点查看 robots.txt 和响应头。
完整执行一遍后再用搜索引擎的抓取诊断工具验证,大部分问题都能覆盖到。

分享到:
上一篇
Nginx高危漏洞批量检测自动升级脚本
下一篇
离线部署OneAPI无网络家用住宅服务器
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意