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

爬虫抓取异常通常由服务器防火墙或站点配置误拦截导致。
本文给出完整整改清单,从确认日志、检查防火墙规则到调整Nginx和站点配置文件,每一步都附可执行命令和宝塔后台路径,适合零基础用户直接排查。

常见原因:防火墙误拦或配置冲突

爬虫抓取异常时,先判断是全部爬虫失败还是特定爬虫(如百度、谷歌)失败。
常见原因包括:

  • 服务器防火墙(iptables/firewalld) 未放行爬虫IP段。
  • 网站应用防火墙(WAF,如宝塔Nginx防火墙) 误判爬虫为攻击。
  • Nginx访问控制 中配置了allow/deny规则或User-Agent过滤。
  • 站点文件权限或伪静态 配置异常导致爬虫无法获取内容。

动手前的准备:确认日志和工具

登录服务器,准备好以下信息:

  • 爬虫IP段:百度爬虫IP段可在百度站长平台查询,谷歌IP段可在官网获取。
  • 服务器登录权限:SSH或宝塔面板。
  • 日志路径:Nginx日志默认 /var/log/nginx/access.log,宝塔面板可在“网站”->“日志”中查看。

使用命令实时查看最近100条访问日志:

tail -100 /var/log/nginx/access.log | grep -i 'spider\|bot'

确认爬虫请求是否到达服务器,状态码是403、502还是200。

分步检查防火墙与站点配置

1. 检查系统防火墙

执行以下命令查看当前规则:

iptables -L -n --line-numbers

若发现对爬虫IP的DROP或REJECT规则,记录规则编号。
如需删除规则:

iptables -D INPUT <规则编号>

对于firewalld,使用:

firewall-cmd --list-all
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="爬虫IP段" accept'
firewall-cmd --reload

2. 检查宝塔Nginx防火墙(WAF)

在宝塔后台依次点击“网站” -> 对应站点 -> “防火墙”。
检查以下项:

  • 全局设置:确认“CC防御”是否开启了“阈值”或“验证码”,若阈值过低,正常爬虫可能被误判。
  • IP白名单:将爬虫IP段添加到白名单。
  • URL白名单:如果爬虫只访问特定路径,可添加该路径。
  • User-Agent过滤:宝塔防火墙上默认有“禁止非浏览器访问”规则,若开启,需要关闭或把爬虫User-Agent加入白名单。

3. 检查Nginx配置文件

Nginx配置可能直接限制爬虫。
查看站点配置文件(宝塔路径:/www/server/panel/vhost/nginx/站点名.conf):

cat /www/server/panel/vhost/nginx/example.com.conf

查找以下内容:

if ($http_user_agent ~* (baiduspider|googlebot)) {
    return 403;
}

若存在,删除该if段或修改为允许。
同时检查allow/deny指令,确保没有错误拦截。

4. 检查站点根目录的权限与伪静态

爬虫可能因为文件权限不足返回403。
确保站点目录为755,文件为644:

chmod -R 755 /www/wwwroot/example.com
find /www/wwwroot/example.com -type f -exec chmod 644 {} \;

伪静态规则(如WordPress的固定链接)若配置错误,爬虫可能返回404。
登录宝塔“网站”->“伪静态”选择对应程序模板。

最容易踩的坑

  • 忘记保存防火墙规则:重启后iptables规则丢失,需用service iptables save持久化。
  • 同时使用CDN和WAF:CDN来源IP可能与爬虫IP不同,导致WAF误拦。建议将CDN IP段也加入白名单。
  • 只放行了IPv4未放行IPv6:部分爬虫使用IPv6访问,需同时检查ip6tables。
  • User-Agent大小写敏感:Nginx的~*为不区分大小写,但宝塔防火墙某些规则可能区分,建议写全小写。

验证爬虫能否正常抓取

修改后,使用curl模拟爬虫请求测试:

curl -A "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)" -I https://example.com

返回HTTP状态码200或301即为正常。
若仍异常,查看响应头的Server和Content-Type是否正常。

也可使用百度站长平台的“抓取诊断”工具,或在线cURL模拟工具验证。

常见问题解答

Q1:为什么爬虫抓取返回403但浏览器正常?

通常是防火墙或Nginx根据User-Agent或IP触发了拦截规则。
优先检查宝塔防火墙的User-Agent过滤和Nginx的allow/deny配置。

Q2:我已经添加了爬虫IP白名单,为什么还显示被拦截?

可能未保存防火墙规则(iptables -L 查看),或者同时使用了CDN导致IP源变为CDN节点。
需将CDN节点IP也加入白名单。

Q3:宝塔Nginx防火墙的“CC防御”应该设多少?

对于正常爬虫,建议将“请求频率”阈值调高到30次/秒以上,或直接关闭CC防御只保留全局规则。

Q4:整改后多久爬虫能恢复收录?

修改生效后,爬虫会在下次抓取时自动恢复正常。
可在百度站长平台“索引量”页面观察变化,通常24小时内可见改善。

如果你正在处理爬虫抓取异常问题,建议按本文清单逐项检查,优先确认日志中是否存在403或502错误。
遇到不确定的规则时,可先临时关闭所有防护再逐步开启排查,避免因配置失误影响正常访问。

分享到:
上一篇
宝塔自动化脚本一键升级修复Nginx高危漏洞教程
下一篇
宝塔定时任务实现SSL证书自动续期教程
1
系统公告

机房迁移升级通知

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