首页
/
加密与隐私
/

IPv6 泄露:双栈网络里 VPN 只管了一半的原因与三种修法

加密与隐私

IPv6 泄露:双栈网络里 VPN 只管了一半的原因与三种修法

双栈网络里,浏览器会优先走 IPv6。如果 VPN 只承载 IPv4,这部分流量就会绕开隧道直连,暴露真实地址。本文讲清原理、检测方法和三种修法。

IPv6 泄露:双栈网络里 VPN 只管了一半的原因与三种修法 封面

IPv6 泄露是指 VPN 只承载了 IPv4 流量,设备的 IPv6 流量仍然从物理网卡直连目标站点,目标站点和运营商因此看到你的真实 IPv6 地址。这个问题在双栈网络里很常见,因为系统会优先选择 IPv6,而许多 VPN 配置只给 IPv4 建了路由。

为什么双栈环境容易泄露

现代系统在访问一个同时有 A 记录和 AAAA 记录的域名时,会按 Happy Eyeballs(RFC 8305)的思路先尝试 IPv6,超时后再回退 IPv4。隧道有没有承载 IPv6,系统并不关心。只要物理网卡上还有一条 IPv6 默认路由,这部分流量就会走原有路径。

IPv6 流量是否走隧道
IPv6 流量是否走隧道

隧道里没有 IPv6 路由会发生什么

WireGuard 或 OpenVPN 如果只把 0.0.0.0/0 路由进隧道,IPv6 默认路由保持不变,所有走 IPv6 的连接都不会经过 VPN。用户看到的现象是大部分站点识别为 VPN 出口,但支持 IPv6 的大型站点记录到的是真实地址。

IPv6 地址能暴露多少信息

当前主流系统默认启用 IPv6 隐私扩展(RFC 4941),接口标识会周期性变化,但前缀部分仍然指向你所在的网络和运营商。对于要隐藏网络位置的场景,前缀本身已经足够说明问题。

怎么检测

连接 VPN 后在终端执行 curl -6 https://ifconfig.me。结果要么连接失败,要么返回隧道出口的 IPv6 地址,都说明没有泄露;如果返回的是你的运营商分配的地址,就是泄露。再用 ip -6 route(Windows 用 Get-NetRoute -AddressFamily IPv6)查看默认路由是否仍指向物理网卡。

三种修法的取舍

三种修复思路的选择
三种修复思路的选择

方案一:让隧道一并承载 IPv6

这是更完整的做法。WireGuard 客户端的 Address 里再分配一个 ULA 地址(例如 fd00:8::2/128),AllowedIPs 写成 0.0.0.0/0, ::/0;服务端开启 net.ipv6.conf.all.forwarding=1,并用 ip6tables 做地址转换或分配真实前缀。这样 IPv6 流量和 IPv4 一样走隧道。

方案二:直接禁用 IPv6

Linux 上执行 sysctl -w net.ipv6.conf.all.disable_ipv6=1 即可临时生效,写入 /etc/sysctl.d 后永久生效。这是最省事的办法,代价是本地网络里依赖 IPv6 的服务也会受影响。

方案三:用防火墙阻断物理网卡上的 IPv6 出站

例如 ip6tables -A OUTPUT -o eth0 -p tcp -j REJECT,让应用快速回退到 IPv4。这种方式保留了系统的 IPv6 配置,适合需要按网卡精细控制的环境,但需要确保规则不会误伤隧道自己的握手流量。

方案对照

方案优点代价
隧道承载 IPv6双栈都在保护之下服务端要配置 IPv6 转发
禁用 IPv6配置最简单影响本地 IPv6 服务
防火墙阻断不改系统网络配置需要维护规则,且不同系统写法不同

修完之后怎么确认

重新连接后再执行一次 curl -6 和 ip -6 route,并打开浏览器检测页面对比。同时也要检查 DNS 有没有经 IPv6 泄露,这两类问题常常一起出现。

IPv6
泄露
双栈
VPN
隐私

相关文章

链路笔记

链路笔记:分享网络与隐私工程的实践笔记,涵盖协议原理、加密与隐私、连接排错与性能调优。

© 2026 链路笔记