跳到主要内容

对于“在 Windows 上用 VPN 时要不要关闭 IPv6”,老实的回答是:默认不用,也不是所有地方都不用。这取决于你的 VPN 是否承载 IPv6 流量、你的网络是否提供 IPv6,以及测试是否发现你真实的 IPv6 地址泄漏了出去。本文帮你用证据来决定,而不是照搬论坛里的小窍门。我们把 Windows 上的 VPN 与 IPv6 当作一个决策来讲:给出测试命令,必要时最小范围地关闭 IPv6 的方法,以及可能出问题的地方。关于地址如何泄漏的更多背景,什么是 IP 泄漏讲解了 IPv4 和 IPv6 泄漏,什么是公网 IP 地址则介绍了基础知识。

简短回答:三条路

想想三种结果,看看哪一种符合你的情况。

  1. 保持 IPv6 开启。 如果测试表明,VPN 连接时看不到你的任何 IPv6 地址,那就没事了,什么都不用改。
  2. 只在一块网卡上关闭 IPv6。 如果 VPN 开启时仍能看到你真实的 IPv6 地址,而且泄漏来自 Wi-Fi 或以太网网卡,就只在那块网卡上关闭 IPv6,然后重新测试。
  3. 在 VPN 一侧找解决办法。 如果你的 VPN 应用有 IPv6 保护选项,或者应用的支持文档说明了它如何处理 IPv6,这比修改 Windows 更干净。

下面的内容帮你判断自己属于哪一条。主要原则是:只改动最小的东西,去解决你确实观察到的问题。

VPN 开启时,IPv6 在 Windows 上做了什么

如今大多数家庭网络和移动网络都是双栈的:给你的电脑同时分配 IPv4 和 IPv6 地址。当 Windows 拥有可用的全局 IPv6 地址时,会优先使用 IPv6,因为默认的地址选择规则把它排在前面。在 VPN 出现之前,这没有问题。

VPN 会建立隧道,并告诉 Windows 哪些目的地应该走隧道。如果隧道只配置为承载 IPv4,你连接中的 IPv6 部分就可能继续在隧道之外运行。同时支持两种地址的网站,可能通过物理网卡上的 IPv6 被访问,你真实的 IPv6 地址就暴露了,而 IPv4 流量则走隧道。表面上一切正常:VPN 显示已连接,网页也能打开。RFC 8200 这样的规范描述的是协议本身,而 VPN 如何处理 IPv6,取决于应用的设计和设置。

这也是为什么常见建议会分成两派。有人说“直接关掉 IPv6”,也有人说“千万别关”。两边各对一半。准确的建议是:只有在发现了泄漏、又没有更好的办法时才关闭。

一步步测试是否存在 IPv6 问题

你需要两组读数:一组在关闭 VPN 时,一组在开启时。

  1. 看看你的电脑有哪些地址。 打开 PowerShell,运行 Get-NetIPAddress -AddressFamily IPv6。输出列出每个 IPv6 地址及其所在网卡。看开头的几个字符。
    • 以 fe80 开头是链路本地地址,只在本地网段内有效,不是泄漏。
    • 以 fd 或 fc 开头是唯一本地地址,用于私有网络内部。
    • 以 2 开头(比如 2001 或 2a0)是全局地址,可以在互联网上路由。
  2. 检查互联网能否看到它。 关闭 VPN,打开一个显示你 IP 地址的页面,看里面是否列出了 IPv6 地址。如果只显示 IPv4,你的网络大概没有提供 IPv6,到此为止即可。
  3. 在 VPN 开启时重复。 连接,等到应用显示已连接,再刷新页面。如果页面列出的 IPv6 地址与关闭 VPN 时相同,说明 IPv6 正在逃出隧道。如果地址不同,或者没有,说明 VPN 在处理 IPv6,或者网络本来就没有。
  4. 换一种方式检查。 运行 ping -6 example.com,并用 tracert -6 example.com 查看第一跳。如果第一跳是你的路由器,说明 IPv6 路径正从物理网卡出去。
  5. 重启后再测。 有些路径只有在重启或换网络之后才会出现。

检查你的 VPN 是否正常工作和如何测试 VPN提供了更长的流程,同时检查 DNS 和 WebRTC。

什么时候适合关闭 IPv6,什么时候不适合

情形 建议做法 原因
所有网卡上都没有全局 IPv6 地址 不用动 没有东西可泄漏
有全局地址,但测试只在关闭 VPN 时看到 不用动 VPN 已经处理了 IPv6
有全局地址,VPN 开启时测试仍能看到 在该网卡上关闭 IPv6,重新测试 你观察到了真实的泄漏
网络仅支持 IPv6,例如某些手机热点 不要关闭 可能失去连接
由公司管理的工作笔记本 不要改 策略属于 IT 部门
只有在某一个网络上泄漏 只做临时改动 其他网络可能需要 IPv6
关闭后你需要的应用出问题 重新开启,另找办法 可用性比部分修复更重要

大多数人属于前两行。如果你是,那么到这里可以合上文章,享受这个平淡无奇的结果。

用最小范围的方法关闭 IPv6

如果表格把你带到了第三行,就一次只改一块网卡,并保留退路。

使用网卡窗口

  1. 按 Windows 键,输入“查看网络连接”并打开。
  2. 右键点击显示了全局地址的那块网卡(Wi-Fi 或以太网),选择“属性”。
  3. 在列表中,取消勾选“Internet 协议版本 6 (TCP/IPv6)”,点击“确定”。
  4. 断开并重新连接网络,然后重新连接 VPN。

使用 PowerShell(以管理员身份运行)

Get-NetAdapterBinding -ComponentID ms_tcpip6
Disable-NetAdapterBinding -Name "Wi-Fi" -ComponentID ms_tcpip6
Enable-NetAdapterBinding -Name "Wi-Fi" -ComponentID ms_tcpip6

第一行列出所有网卡以及 IPv6 是否绑定在上面,让你在改动之前看清现状。第二行为指定的网卡关闭 IPv6。第三行把它重新打开,请把它记在笔记里。把“Wi-Fi”替换成你网卡列表中的名称。

改动之后,把上一节的完整测试再做一遍,确认 VPN 开启时 IPv6 地址不再出现。改动前后各截一张网卡列表的图,以后就能看出改了什么。

微软的立场是,IPv6 是现代 Windows 的核心部分,不建议通过注册表在整个系统范围内关闭它。如果你被某个关闭全部 IPv6 组件的注册表方案吸引,请记住,上面按网卡的做法能以小得多的风险达到目的,而且 Windows 文档里有一个更温和的设置:优先使用 IPv4 而不是 IPv6,而不是把 IPv6 移除。使用前请先查看微软针对你所用版本的文档。

关闭 IPv6 后什么可能出问题

关闭 IPv6 很少会出大事,但也不是没有代价。

  • 仅支持 IPv6 的网络。 一些移动运营商以及部分酒店或校园网络运行 IPv6,并通过转换来访问 IPv4 网站。如果网卡上没有 IPv6,你的电脑可能完全没有可用的地址。
  • 本地发现功能。 一些 Windows 功能,比如某些设备发现和共享方式,在本地网络里使用 IPv6。
  • 期望使用它的应用。 少数应用和工具会绑定 IPv6,没有时会报错。多数能顺利回退到 IPv4。
  • Windows 更新和重置。 功能更新可能恢复你已移除的 IPv6 绑定,让泄漏在毫无提示的情况下重新出现。
  • 网卡混用。 在 Wi-Fi 上关闭了,却忘了扩展坞的以太网卡,在你于桌前插上网线的那一刻,泄漏又敞开了。

改动后如果有东西不工作,先撤销,再排查。这个顺序能避免小问题变成谜团。

不用关闭 IPv6 的其他选择

在改 Windows 之前,先考虑这些。

  1. 在 VPN 一侧处理。 很多 VPN 应用有选项决定如何处理 IPv6。到设置里看有没有 IPv6 保护或泄漏保护,并阅读应用的帮助页面。免费 VPNclient 应用里具体的选项名称,应用商店说明并没有记载,请看你自己手上的应用。
  2. 在路由器层面控制。 许多家用路由器可以在管理页面里为整个网络关闭 IPv6。这比只改一块网卡的影响更大,但能一次覆盖所有设备。请先阅读路由器说明书。
  3. 敏感操作换一个网络。 用仅支持 IPv4 的套餐开手机热点,可以直接让这个问题消失。当你只想要一个干净的测试结果时,这很有用。
  4. 等待应用更新。 如果泄漏是更新之后出现的,支持团队也许已经知道这个问题了。

关于设置的基础知识,Windows 设置指南介绍了安装与登录,下载页列出了官方安装包。

三种情形,三种答案

家里用光纤的用户。 小佩家里的光纤路由器开启了 IPv6。VPN 开启时的测试只显示一个不属于她的 IPv4 地址。她不动 IPv6。大版本 Windows 更新之后她会重新测试一次,并把日期写在笔记本上。

住酒店网络的旅行者。 阿德连上了会分发 IPv6 的酒店 Wi-Fi。VPN 开启时,他的测试显示出酒店的 IPv6 地址。他在 Wi-Fi 网卡上关闭了 IPv6,重新连接,测试通过。他把重新开启 IPv6 的 PowerShell 命令记在笔记里,回到没有泄漏的家里后就把它打开了。

使用公司管理笔记本的远程办公者。 安娜在由 IT 控制的笔记本上使用公司的 VPN 配置文件。她的测试显示出一个 IPv6 地址。她没有修改网卡设置,而是把看到的情况连同命令和结果一起报告给 IT,让他们来决定。在受管理的设备上改网络设置,即使 Windows 允许,也可能违反合规规定。

常见错误与局限

  • 没测试就关闭 IPv6。 你可能什么也没修好,却弄坏了别的东西。
  • 一上来就改注册表。 它最难撤销,也最具侵入性。
  • 忘了其他网卡。 扩展坞、USB 共享网络和虚拟交换机都有自己的绑定。
  • 只相信一次测试。 重启后、切换网络后都要重测。
  • 把链路本地地址当成泄漏。 fe80 地址是正常的。
  • 以为这样能解决一切。 IPv6 测试干净,并不能说明 DNS 或 WebRTC 没有泄漏,VPN 也不能阻止钓鱼或让你匿名。
  • 没记下原来的状态。 不知道原来开着什么,就无法恢复。

整个过程的目的,是堵住某一条具体的路径,不让它泄漏。如果你无法复现泄漏,就没有什么需要修复,保持一个正常工作的配置不动,本身就是个合理的决定。

总结

对于 Windows 上 VPN 与 IPv6 的问题,不要出于习惯就关闭。先测试 VPN 开启时是否能看到全局 IPv6 地址;看不到就保持 IPv6 不变。如果看到了,只在发生泄漏的网卡上关闭 IPv6,重新测试,把重新开启的命令记在笔记里,并留意仅支持 IPv6 的网络以及可能恢复该设置的 Windows 更新。在改动更深层的设置之前,先找 VPN 一侧或路由器一侧的解决办法,把受管理的笔记本留给 IT 去处理。

如果你想要一份通行证来试着照做,可以看看价格页上的选项,无需着急。

常见问题

在 Windows 上用 VPN 一定要关闭 IPv6 吗?

不一定。很多 VPN 配置能正确处理 IPv6,不需要任何改动。请先测试。只有当 VPN 已连接而测试页面仍能看到你的 IPv6 地址时,才值得关闭 IPv6,而且只关闭发生泄漏的那块网卡。

关闭 IPv6 会让上网变慢吗?

通常不会明显变慢,大多数网站仍可通过 IPv4 访问。但在仅支持 IPv6 的网络上,关闭它可能导致无法联网或被迫经过较慢的转换,所以关闭之前先弄清你的网络提供什么。

在注册表里关闭好,还是在网卡上关闭好?

按网卡关闭更容易撤销,影响也更小。微软不建议在系统范围内关闭 IPv6,建议改为“优先使用 IPv4”,而不是彻底移除 IPv6。无论你选哪种,都要记下原来的设置。

为什么关闭之后还能看到我的 IPv6 地址?

这个地址可能来自另一块网卡,比如虚拟交换机或第二个网络连接,也可能是测试页面缓存了之前的结果。请列出所有网卡,检查每块网卡的绑定,并在重新连接后再测试。

以 fe80 开头的地址是什么意思?

以 fe80 开头的是链路本地地址,只在本地网段内使用,不会在互联网上被转发。看到这类地址是正常的,不是泄漏。

关于作者

Bob Kanokphon Thongdee,XPASS VPN 创始人

Bob Kanokphon Thongdee

  • XPASS VPN 创始人
  • eSIMonline.asia 联合创始人
  • 7 年以上网络营销经验
  • Cojourney Visa 与 Cojourney Travel 创始人

短途出行或忙碌的一个月,需要 VPN?

XPASS 提供按天数计算的预付通行证。一次付款,不会自动续费。

查看通行证

继续阅读

VPN 安全

什么是 IP 泄漏?IPv4 与 IPv6 泄漏详解

VPN 已连接,网站却可能仍然看到你的真实 IP 地址。本文说明 IPv4 与 IPv6 泄漏是怎么发生的、如何测试,以及该怎么处理。

阅读约 9 分钟

VPN 基础

什么是公网 IP 地址?

公网 IP 地址是你连接网站时对方看到的地址。本文解释它如何分配、与家庭网络内的私有地址有何不同,以及它能和不能透露什么。

阅读约 9 分钟

VPN 安全

如何自己评测 VPN:一份测试清单

许多 VPN 评测是为赚取佣金而写的。这份清单教你自己测试任何 VPN:哪些能验证,哪些不能,以及如何给结果打分。

阅读约 9 分钟

设备指南

如何在 Windows 上设置 VPN

分步说明:下载并安装 Windows 版 VPNclient,处理 Windows 安全提示,用 My Pass 上的信息登录并连接。

阅读约 7 分钟

故障排除

如何检查 VPN 是否正常工作

VPN 显示已连接,也可能没有真正发挥作用。用这些检查确认流量确实经过 VPN,并解决 IP 不变的情况。

阅读约 7 分钟