搜索抓取

搜索蜘蛛抓取:IPv4 与 IPv6 双栈下入口可达性与回源路径核对

双栈接入后,蜘蛛可能经由 IPv4 或 IPv6 访问同一页面。解析策略、节点配置、防火墙与回源规则的差异,会让部分抓取直接失败却不易察觉。本文按解析记录、分协议栈访问、日志拆分、安全策略四个步骤,说明如何核对两条链路的可达性与返回一致性。

搜索抓取

搜索蜘蛛抓取:IPv4 与 IPv6 双栈下入口可达性与回源路径核对

很多站点在更换 CDN 或升级机房时,会同时开启 IPv4 与 IPv6 双栈接入。对普通用户来说,这只是“能不能打开”的差别;但对搜索蜘蛛来说,双栈意味着它可能从不同协议栈、不同解析结果、甚至不同回源节点访问你的页面。一旦两条链路的可达性、返回内容或状态码不一致,抓取就会呈现出“看起来正常、实际断断续续”的状态。

双栈为什么会带出抓取问题

蜘蛛在发起抓取前先做 DNS 解析。若域名同时存在 A 和 AAAA 记录,爬虫的解析策略、所在网络环境、是否优先 IPv6,都会影响它最终连到哪一个地址。如果 AAAA 指向的节点没有正确配置监听、证书、防火墙放行或回源规则,就会出现部分抓取直接失败,而你在浏览器里用 IPv4 访问却一切正常的错觉。

常见的几种不一致表现

  • 抓取日志里同一 URL 时而 200、时而连接超时或 502
  • CDN 或 WAF 只对 IPv4 段做了白名单,IPv6 请求被拦截
  • 证书链或回源配置未覆盖 IPv6 节点,握手阶段就中断
  • 双栈节点缓存策略不同,返回的 HTML 版本不一致
  • 站内重定向把 IPv6 请求跳到只监听 IPv4 的域名

核对顺序建议

一、先把解析结果摆出来

用 dig 或 nslookup 分别查 A 与 AAAA,记录 TTL 与返回地址,确认 AAAA 不是遗留的测试地址或已下线机房。若使用 CDN,留意其调度域名与 CNAME 链路上是否都支持双栈。

二、分别用两个协议栈访问

  1. 用 curl -4 与 curl -6 分别请求首页、栏目页和一篇内容页
  2. 对比状态码、响应头、TTFB 与返回正文长度
  3. 检查是否出现证书告警、连接重置或超时
  4. 确认最终落地 URL 是否一致

三、看日志与回源

在服务器访问日志或 CDN 日志中按协议族拆分统计,观察 IPv6 请求的占比与错误率。重点看 5xx、超时与 403 是否集中在某一个协议栈。如果 IPv6 流量占比极低但错误率很高,说明这条路径基本不可用,需要优先修复。

四、防火墙与安全策略

防火墙、WAF、限流规则往往按 IPv4 网段配置,新增 IPv6 后容易漏放。核对监听地址是否为 :: 或 0.0.0.0,同时确认安全组、白名单与限流阈值对两个协议栈都生效。

长期维护要点

  • 双栈上线前先在测试域名验证完整抓取路径
  • 变更 DNS 记录时保持合理 TTL,避免解析切换期的抖动
  • 把协议族纳入日常抓取监控指标,而不是只看总成功率
  • 若暂时无法维护 IPv6 链路,宁可先不发布 AAAA 记录
入口可达性是抓取的前提。任何一条解析路径不可用,都会让部分抓取直接消失,而这类问题往往不会在页面层面留下明显痕迹。

把 IPv4 与 IPv6 当成两条独立的抓取链路分别核对,比只检查“网站能不能打开”更接近问题的真实位置。