很多朋友在折腾家庭网络或者服务器时,经常会遇到一种让人百思不得其解的现象:明明在终端里敲个 curl -6,甚至能跑满千兆带宽,可一旦打开 test-ipv6.com 这类网页检测工具,它却一脸严肃地告诉你:“您的网络不支持 IPv6”

这就好比你明明有一辆法拉利停在车库里(本地 IPv6 正常),但导航软件(Web 检测工具)非说你家门前没路。这是怎么回事?今天咱们就来扒一扒这背后的“坑”,顺便聊聊怎么正确验证你的 IPv6 到底通不通。

一、 为什么终端能通,网页却不行?

这其实是“命令行环境”与“浏览器环境”的差异造成的,主要罪魁祸首通常有以下三个:

1. DNS 解析的“双标”行为

  • 终端(Curl): 当你执行 curl -6 https://example.com 时,你强制使用了 -6 参数,这告诉操作系统:“别管 A 记录(IPv4),给我查 AAAA 记录(IPv6)”。系统老老实实去问 DNS 服务器,拿到了 IPv6 地址,连接建立成功。
  • 浏览器: 浏览器默认是“快乐双修”模式。它会同时请求 IPv4 (A) 和 IPv6 (AAAA) 记录,并采用 RFC 6721 规定的“快乐的眼球”算法——谁先响应就用谁。如果你的 IPv6 路由稍微抖动一下,或者 DNS 服务器返回 IPv6 记录很慢,浏览器可能早就通过 IPv4 跑完握手流程了。在检测网站看来,你是通过 IPv4 进来的,自然判定你没有 IPv6。

2. 代理/VPN 的“截胡” 这是很多技术爱好者最容易忽略的点。如果你在浏览器里挂着 Clash、V2Ray 或者系统级代理,流量流向很可能是这样的: 浏览器 -> 代理软件 -> 代理节点(可能是 IPv4 出口) -> 目标网站 检测网站看到的 IP 是你代理节点的 IP,而不是你本地的出口 IP。即便你的代理软件勾选了“IPv6 优先”,但前提是你的代理节点本身必须具备原生 IPv6 出口,否则依然是“无效”。而你的终端 curl 如果没有走代理配置,展示的就是真实的原生 IPv6,两边结果自然不同。

3. 隐私保护与浏览器特性 现在的新版 Chrome 或 Edge,为了防追踪,可能会开启“安全 DNS”或者使用 QUIC 协议(基于 UDP)。在某些特定的网络环境下,这会导致 IPv6 的握手过程被阻断,回退到 IPv4,从而被检测工具误判。

二、 如何准确验证 IPv6?(避坑指南)

既然网页检测容易受环境影响,我们不妨换几套组合拳来验证:

方案 A:最纯真的终端测试(推荐) 抛弃浏览器,直接用命令行,这是最硬核、最不容易作弊的方法。

打开你的终端(CMD、PowerShell 或 Terminal):

curl -6 https://ipv6.google.com
  • 如果返回了一堆 HTML 代码(包含 302 跳转),说明 IPv6 通道完全通畅。
  • 如果提示 Could not resolve host,说明 DNS 的 AAAA 记录解析有问题。
  • 如果提示 Connection timed out,说明 TCP 连接不通,可能是防火墙拦住了,或者 ISP(运营商)没给你路由。

想知道公网看到的你的 IPv6 地址是什么?试试这个:

curl -6 https://ifconfig.me

或者使用 ip.sb(这个站对 IPv6 支持很友好):

curl -6 https://ip.sb

如果你能通过 -6 拿到一个公网 IPv6 地址,那就百分之百没问题了,网页怎么显示随它去。

浏览器显示 IPv6 检测失败或连接到 IPv4 的截图

浏览器端检测显示不支持 IPv6,与终端结果形成对比

方案 B:排查浏览器设置 如果你非要用网页测,请先做个“斋戒”:

  1. 关掉所有代理插件/软件
  2. 开启浏览器的无痕模式(这会禁用大部分可能干扰网络的扩展)。
  3. 访问 test-ipv6.com

如果在无痕模式下显示“完美”,那就可以确定是你之前的代理软件或扩展在捣乱。

方案 C:检查本地 DNS 有时候运营商的 DNS 服务器很拉跨,根本不理睬 IPv6 的查询请求。

  • Windows/Mac: 可以尝试将 DNS 修改为公共 DNS,比如 Google 的 2001:4860:4860::8888 或者 Cloudflare 的 2606:4700:4700::1111。注意,要在 IPv6 设置里填这些地址,前提是你的路由器已经能通过 IPv4 访问到它们,或者你的路由器本身支持 IPv6 转发。

三、 检测工具推荐

除了老牌的 test-ipv6.com,如果你发现那个不准,可以试试这几个作为备用:

  1. ip.sb: 界面简单粗暴,不仅显示 IP,还能看到延迟的 AS 信息,非常直观。
  2. speedtest.net: 很多人都用它测速,但别忘了它也能看出你是否用了 IPv6。如果你开始测速时,服务器列表里没有 [IPv6] 标记,说明你的网络路由还没完全走通 IPv6。
  3. iperf3: 既然是“技术”讨论,不妨直接用工具测带宽。找一个提供 IPv6 公网 iperf3 的服务器,直接看吞吐量,这才是验证王道。

总结

遇到“本地有 IPv6,网页没 IPv6”,不用慌。命令行(curl)说你有,那你就是真有。这通常是浏览器为了优先保证网页加载速度而选择了 IPv4,或者是中间的代理节点“接管”了流量。

只要你的 curl -6 能跑通,你的 BT 下载、PT 挂种、或者直连 IPv6 资源,理论上都能享受更低的延迟和更好的 NAT 穿透能力。至于那个显示你“不支持”的网页,就当它在骗你点击量吧。

标签: none

评论已关闭