IPv6 检测失败但手机能打开是怎么回事
这个现象非常常见,也是最容易让人误判的一条。
检测显示 IPv6 全部失败,但拿手机一试,网站秒开。于是结论变成“工具不准”。
多数时候,工具是准的,手机也没有说谎。
手机同时走了两条路
主流操作系统在发起连接时,会同时尝试 IPv6 和 IPv4,这就是 Happy Eyeballs 机制。
IPv6 如果连不上,系统会在几百毫秒内放弃,回落到 IPv4。整个过程用户完全感知不到,页面照常打开。
所以“手机能打开”只证明了一件事:IPv4 那条路是通的。IPv6 那条路通不通,手机根本没告诉你。
什么情况下才会暴露
纯 IPv6 环境。
部分移动网络、部分教育网、一些物联网设备,只有 IPv6 出口,没有 IPv4 或者需要经过 NAT64 转换。这类用户访问你的站点时,没有回落这个选项,IPv6 不通就是打不开。
这类用户占比不高,但一旦出问题,就是完全无法访问,不是慢一点。
怎么确认 IPv6 到底通没通
只查 AAAA 记录不够,那只证明解析配了。
用 IPv6 网站测速 从具备 IPv6 出口的节点发起请求,看能不能建连、能不能完成 TLS 握手、能不能拿到状态码。三步都过,才算真的通。
也可以在自己的电脑上临时禁用 IPv4 再访问,但操作麻烦,而且只能代表你所在网络的情况。多节点探测的信息更全面。
常见的原因
如果确认 IPv6 真的不通,问题通常在这几处。
服务器没有公网 IPv6 地址,或者机房没开通 IPv6 出口。
Nginx 只监听了 IPv4,没写 listen [::]:443。
防火墙或安全组只放行了 IPv4,ip6tables 是另一套规则。
CDN 没有开启 IPv6,或者开了但回源链路有问题。
按这个顺序查,大部分情况能定位到具体哪一环。
一个反向的误判
还有一种情况:检测全部成功,但用户说打不开。
这通常不是 IPv6 的问题,而是用户所在网络的 IPv6 出口有问题,或者用户的设备没有 IPv6。检测只能证明“从探测节点到站点”这条路通,不能证明“从每个用户到站点”都通。
工具给的是参考坐标,不是最终结论。