IPv6 为什么会影响部分代理客户端连接

双栈网络优先使用 IPv6 的行为,会让不支持它的代理链路出现流量绕行或连接失败,蜂窝网络下尤其常见。本文给出判断方法与各客户端的调整位置。

Wi-Fi 下一切正常,切到手机流量就全部超时;或者宽带升级支持 IPv6 后,部分网站突然绕过了代理直连——这两类看似无关的故障,指向的往往是同一个源头:IPv6。

IPv6 为什么会带来问题

IPv6 是下一代互联网地址协议,与现行的 IPv4 长期并存。麻烦出在「双栈优先级」上:当网络同时提供两种地址时,操作系统通常优先尝试 IPv6。而代理链路中只要有一环不支持 IPv6——客户端没有监听、分流规则没覆盖、节点不支持——就会出现两种结果:

  • 流量绕过代理:系统通过 IPv6 直连目标,代理形同虚设。既可能暴露真实地址,也可能因为直连被拦截而打不开页面;
  • 连接失败:客户端尝试用 IPv6 连接节点,或解析返回了 AAAA 记录(域名的 IPv6 地址记录)但后续链路不通,表现为超时。

蜂窝网络 IPv6-only 的特殊情况

国内蜂窝网络大量采用 IPv6 优先甚至仅分配 IPv6 的策略。此时若订阅里的节点域名没有 AAAA 记录,或客户端不支持通过 NAT64(运营商提供的 v6 转 v4 网关)访问 IPv4 地址,就会出现典型症状:Wi-Fi 一切正常,蜂窝网络下所有节点超时。这是该类故障最常见的成因之一,完整排查见Wi-Fi 正常但手机流量不行怎么办

如何判断问题出在 IPv6

  • 不挂代理访问 test-ipv6.com 一类检测站,确认当前网络是否分配了 IPv6;
  • 挂上代理后查询出口 IP,如果显示的是本地运营商的 IPv6 地址,说明流量绕过了代理;
  • 对比 Wi-Fi 与蜂窝网络、开关代理前后的表现差异,把问题定位到具体环节。

客户端里的 IPv6 开关

多数客户端对 IPv6 默认采取保守策略,相关设置集中在两处:「是否代理 IPv6 流量」与「DNS 是否返回 AAAA 记录」。

客户端 相关设置位置
Clash 系(mihomo 内核) 总开关 ipv6、DNS 部分独立的 ipv6 解析开关、TUN 的地址栈选项
Shadowrocket 设置中的 IPv6 相关选项与「首选 IPv4」类开关
sing-box 系 DNS 与入站的 strategy 可设为仅使用 IPv4

排查阶段的通用做法是先在客户端内整体关闭 IPv6(解析只返回 IPv4、隧道只处理 IPv4),确认问题消失后再按需逐项打开。TUN 模式下 IPv6 是否被完整接管尤其值得检查,背景知识见TUN 模式与系统代理的区别。系统层面临时禁用网卡的 IPv6 也能快速验证猜想,但属于全局改动,确认原因后应及时恢复。

与使用决策的关联

主力网络是蜂窝流量的用户,选择机场时可以留意节点是否提供 IPv6 入口、或直接使用 IP 地址而非仅域名的配置;客户端尽量选用 IPv6 策略可控的现代内核。DNS 与 IPv6 的问题常常交织出现,建议配合DNS 设置错误为什么会导致网页打不开一起理解。

下一步阅读

常见问题

关闭 IPv6 会有副作用吗?

在客户端内关闭 IPv6 解析与转发通常没有明显副作用。系统层面禁用则影响所有应用,在 IPv6-only 的蜂窝网络下可能导致完全断网,只适合临时排查。

为什么只有部分网站绕过了代理?

通常是这些网站有 AAAA 记录且系统优先走了 IPv6 直连,而客户端只接管了 IPv4 流量。让客户端同时接管 IPv6 或关闭 AAAA 解析即可。

节点支持 IPv6 有什么好处?

入口支持 IPv6 的节点在 IPv6-only 蜂窝网络下连接更可靠;出口支持 IPv6 则可以访问仅提供 IPv6 的服务。目前多数使用场景仍以 IPv4 为主。