Windows 10 不会停止使用带有 VPN 的远程网关

Windows 10 不会停止使用带有 VPN 的远程网关

希望这是一个合适的提问地点。我在家里的 Windows 10 PC 上设置了 VPN 连接,这样我就可以加入办公室的网络。有一次我注意到我的互联网连接似乎非常慢,经过一番调查后发现 Windows 正在通过 VPN 路由所有非本地流量。

我了解了 VPN 连接 IPv4 属性中的“在远程网络上使用默认网关”复选框,并取消了该复选框的选中状态。这解决了问题,但只是暂时的。过了“一段时间”(不知道具体什么时候发生,我通常在几天内注意到)后,我的互联网连接再次变得缓慢,而且所有流量都通过 VPN 路由。

route print在流量通过 VPN 时使用将显示:

===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.0.1     192.168.0.10   4506
          0.0.0.0          0.0.0.0         On-link    192.168.12.200     26
      82.4.223.31  255.255.255.255      192.168.0.1     192.168.0.10   4251
        127.0.0.0        255.0.0.0         On-link         127.0.0.1   4556
        127.0.0.1  255.255.255.255         On-link         127.0.0.1   4556
  127.255.255.255  255.255.255.255         On-link         127.0.0.1   4556
      192.168.0.0    255.255.255.0         On-link      192.168.0.10   4506
     192.168.0.10  255.255.255.255         On-link      192.168.0.10   4506
    192.168.0.255  255.255.255.255         On-link      192.168.0.10   4506
   192.168.12.200  255.255.255.255         On-link    192.168.12.200    281
        224.0.0.0        240.0.0.0         On-link         127.0.0.1   4556
        224.0.0.0        240.0.0.0         On-link      192.168.0.10   4506
        224.0.0.0        240.0.0.0         On-link    192.168.12.200     26
  255.255.255.255  255.255.255.255         On-link         127.0.0.1   4556
  255.255.255.255  255.255.255.255         On-link      192.168.0.10   4506
  255.255.255.255  255.255.255.255         On-link    192.168.12.200    281
===========================================================================
Persistent Routes:
  Network Address          Netmask  Gateway Address  Metric
          0.0.0.0          0.0.0.0      192.168.0.1  Default
===========================================================================

我家用电脑的 IP 地址(静态分配)为 192.168.0.10,家用路由器的 IP 地址为 192.168.0.1。我通过 VPN 接入的网络是 192.168.12.0,由 DHCP 分配 IP 地址。

我看到它添加了一条使用 VPN 的路由,并为其指定了最低度量。我不知道“On-link”在此上下文中是什么意思。

该复选框仍未选中。如果我断开然后重新连接 VPN 连接,则一切都已修复:

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.0.1     192.168.0.10    281
      82.4.223.31  255.255.255.255      192.168.0.1     192.168.0.10     26
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    331
      192.168.0.0    255.255.255.0         On-link      192.168.0.10    281
     192.168.0.10  255.255.255.255         On-link      192.168.0.10    281
    192.168.0.255  255.255.255.255         On-link      192.168.0.10    281
     192.168.12.0    255.255.255.0     192.168.12.1   192.168.12.200     26
   192.168.12.200  255.255.255.255         On-link    192.168.12.200    281
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    331
        224.0.0.0        240.0.0.0         On-link      192.168.0.10    281
        224.0.0.0        240.0.0.0         On-link    192.168.12.200    281
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  255.255.255.255  255.255.255.255         On-link      192.168.0.10    281
  255.255.255.255  255.255.255.255         On-link    192.168.12.200    281
===========================================================================
Persistent Routes:
  Network Address          Netmask  Gateway Address  Metric
          0.0.0.0          0.0.0.0      192.168.0.1  Default
===========================================================================

只有 192.168.12.0 的流量通过 VPN 发送,这正是我想要的。

有谁知道是什么原因导致 Windows 突然决定忽略“不使用远程网关......”选项并添加路由?

是否有某种我可以永久添加的“负面路由”,可以有效阻止任何进入 VPN 的不需要的流量?

编辑以添加:我也尝试在 VPN IPv4 属性的同一页面中手动将度量设置得非常高,但这似乎没有效果,并且没有反映在输出中route print

编辑以添加:我还注意到了另一个有关连接 VPN 的奇怪行为。这都是使用内置的 Windows 10 客户端:

如果通过单击托盘中的网络图标来启动连接,选择 VPN 并单击其中的内联“连接”按钮,它通常会卡在“连接...”阶段一段时间然后失败。

如果我进入控制面板的“网络和 Internet 设置 -> VPN”部分并从那里启动连接,它会 100% 成功并且非常快。

我还一直在使用第三方实用程序 AutoVPNConnect,它会定期检查 VPN 是否处于活动状态,如果没有,则“重新拨号”。我找不到任何方法在 Windows 本身内可靠地实现此行为。我现在怀疑实用程序重新建立连接时会添加不需要的路由。我不相信它是故意这样做的。

Windows 中是否有多个用于“拨打”VPN 的 API,并且它们的功能略有不同?

编辑以添加:手动为本地网络接口分配度量值 1,harrymc 建议,似乎让问题至少在几天内消失,尽管route print表明 Windows 实际上根本没有使用该值。将赏金授予该答案,因为建议似乎确实已经阻止了该问题,但我觉得我无法将任何东西标记为我的问题的实际“答案”,它仍然没有解释为什么会发生这种情况,或者为什么它已经停止,或者它是否会在将来再次出现。

答案1

当问题发生时我可以看到两个奇怪的事实:

  1. VPN 突然获得了一条默认路由 ( 0.0.0.0),这是您重新启动 VPN 时不存在的路由
  2. 本地路线的度量值不合理地高至 4500+。

由于您的 VPN 客户端未指定,我不知道它是否是背后的那个。它肯定是创建0.0.0.0默认路由的那个,但这个路由的度量值非常合理26

因此我建议:

  • 在您的本地网络中禁用 IPv6,以减少因素的数量。
  • 1在本地网络的属性中将本地 IPv4 连接设置为度量或“最佳”(禁用“自动度量”)。
  • 在 VPN 属性、网络选项卡、“Internet 协议 (TCP/IP)”属性、高级中,确认“在远程网络上使用默认网关”未勾选。在 DNS 选项卡中,确保已勾选“在 DNS 中注册此连接的地址”。

答案2

我相信您已经尝试过取消选中Automatic metric并设置一个较低的值,但以这种方式失败了。

因此我建议三个方向:

  • 编写一个批处理文件或其他文件来管理您的 VPN 连接——拨号/检查/重拨。
  • 编写一个脚本来检查路由表,并在发生事情时将其改回。
  • 检查的设置AutoVPNConnect,看是否有一些与路线相关的设置。

您的路由表很可能已被 更改AutoVPNConnect,因此我建议您将其删除并使用第一种方法。
至少AutoVPNConnect先删除,然后尝试手动连接/重新连接 VPN,看看问题是否再次出现。

相关内容