很多站点在更换 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 链路上是否都支持双栈。
二、分别用两个协议栈访问
- 用 curl -4 与 curl -6 分别请求首页、栏目页和一篇内容页
- 对比状态码、响应头、TTFB 与返回正文长度
- 检查是否出现证书告警、连接重置或超时
- 确认最终落地 URL 是否一致
三、看日志与回源
在服务器访问日志或 CDN 日志中按协议族拆分统计,观察 IPv6 请求的占比与错误率。重点看 5xx、超时与 403 是否集中在某一个协议栈。如果 IPv6 流量占比极低但错误率很高,说明这条路径基本不可用,需要优先修复。
四、防火墙与安全策略
防火墙、WAF、限流规则往往按 IPv4 网段配置,新增 IPv6 后容易漏放。核对监听地址是否为 :: 或 0.0.0.0,同时确认安全组、白名单与限流阈值对两个协议栈都生效。
长期维护要点
- 双栈上线前先在测试域名验证完整抓取路径
- 变更 DNS 记录时保持合理 TTL,避免解析切换期的抖动
- 把协议族纳入日常抓取监控指标,而不是只看总成功率
- 若暂时无法维护 IPv6 链路,宁可先不发布 AAAA 记录
入口可达性是抓取的前提。任何一条解析路径不可用,都会让部分抓取直接消失,而这类问题往往不会在页面层面留下明显痕迹。
把 IPv4 与 IPv6 当成两条独立的抓取链路分别核对,比只检查“网站能不能打开”更接近问题的真实位置。