爬虫抓取失败防火墙与站点配置双重整改清单
爬虫抓取失败时,很多人最先怀疑服务器被墙或 IP 被封,但实际更多是防火墙规则和站点配置两层问题叠加导致。
本文给出一个可照做的双重整改清单:先用命令定位拦截来源,再逐项检查站点响应,最后用日志确认爬虫是否恢复正常,全程不依赖图形面板也可执行。
先分清是防火墙拦截还是站点配置报错
登录服务器后,先用一条命令看端口状态。
以常见的 Nginx 和 Apache 为例,确认 80 和 443 端口确实在监听:
ss -lntp | grep -E ':80|:443'
如果端口正常,再用 curl 模拟爬虫访问首页:
curl -I -A "Baiduspider" http://你的域名/
返回 200 OK 说明站点本身没问题,重点排查防火墙;
返回 403、301 或 503,则要先看站点配置。
简单判断方法:换一个普通 UA 访问如果正常,只有爬虫 UA 异常,几乎可以确定是 UA 屏蔽或防火墙规则误伤。
防火墙侧整改:放行常用端口并检查拦截日志
先查看防火墙当前规则,以 Firewalld 为例:
firewall-cmd --list-all
确认 http 和 https 服务是否放行:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
如果用了宝塔面板,路径是:安全 → 系统防火墙,确认 80、443 已放行。
如果服务器有云安全组,还要登录云服务商控制台检查入方向规则,部分云厂商默认只放通 22 端口,导致外部爬虫无法访问网站。
另外查看防火墙拦截日志,确认是否有主动封禁爬虫 IP 段:
grep "DROP" /var/log/firewalld | tail -20
若发现代理 IP 或机房 IP 被频繁拦截,可以将对应 IP 段加入白名单,或直接关闭针对 UA 的屏蔽规则。
站点配置整改:重点检查 robots、伪静态和 UA 过滤
第一步:确认 robots.txt 没有屏蔽全部爬虫。 浏览器访问 http://你的域名/robots.txt,如果内容类似:
User-agent: *
Disallow: /
这会让所有正常爬虫直接放弃抓取。
建议改成只屏蔽后台和动态参数:
User-agent: *
Disallow: /admin/
Disallow: /?*
第二步:检查伪静态规则是否对爬虫返回异常状态码。 部分站点启用伪静态后,爬虫访问分类页或详情页会得到 404。
用下面的命令测试:
curl -A "Baiduspider" -o /dev/null -s -w "%{http_code}" http://你的域名/分类页/
如果返回 404,去 Nginx 或 Apache 配置里检查 rewrite 规则是否包含了爬虫 UA 过滤。
常见误配置如下:
if ($http_user_agent ~* "Baiduspider|Googlebot") {
return 403;
}
出现这段代码就意味着主动拒绝爬虫,直接注释掉或删除,然后重载服务:
nginx -t && nginx -s reload
第三步:
检查 CDN 或 WAF 的 CC 防护。 如果网站套了 CDN,
爬虫请求可能被误判为攻击,
优先在 CDN 控制台把对应搜索引擎的 UA 加入白名单,
并关闭“人机验证”或“频率限制”对爬虫的触发。
避坑说明:这些地方最容易反复出错
爬虫抓取失败整改后仍然无效,多半是下面几个原因:
- 改完配置没有重载服务。 防火墙规则和 Nginx 配置必须重载才生效,别漏掉
systemctl reload nginx或firewall-cmd --reload。 - 只改服务器防火墙,忘了云安全组。 云安全组优先级通常高于系统防火墙,入方向 80/443 未开,系统里怎么放行都没用。
- robots.txt 设置了
Crawl-delay导致抓取超时。 过长的抓取延迟会让搜索引擎放弃,建议先从 1-2 秒开始。 - 证书过期导致 443 握手失败。 用
curl -I https://域名会提示证书错误,记得在证书到期前续期。
用日志和抓取测试验证整改结果
完成以上修改后,查看站点访问日志,确认爬虫请求是否恢复正常。
# Nginx 日志路径
tail -f /var/log/nginx/access.log | grep "Baiduspider"
看到返回 200 且频率逐渐增加,说明抓取已恢复。
还可以在百度搜索资源平台或对应搜索引擎的站长工具里提交 URL 并查看抓取异常诊断,通常 24 小时内会显示最新抓取状态。
另外提醒一句:不要使用“保证放量抓取”的第三方工具,只有站点本身稳定、响应快速、内容可访问,爬虫才会持续回来。 如果服务器带宽或配置确实较低,建议先升级资源,再观察抓取效果;
需要更换稳定云服务器时,选择具备正规 IDC 资质的服务商会更稳妥。
如果你在整改过程中发现某个步骤结果异常,建议回到对应的配置项重新检查,不要一次性改太多参数,改一项验证一项,这样能最快找到问题源头。