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

Ash*_*ley 6 vpn routing windows-10

希望这是一个合适的地方问。我在家用 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
===========================================================================
Run Code Online (Sandbox Code Playgroud)

我的家用 PC 是(静态分配的)192.168.0.10,192.168.0.1 是我的家用路由器。我通过 VPN 加入的网络是 192.168.12.0,由 DHCP 提供 IP 地址。

我可以看到它添加了一条使用 VPN 的路由,并为其指定了最低指标。我不知道在这种情况下“链接上”是什么意思。

该复选框仍处于未选中状态。如果我断开连接然后重新连接 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
===========================================================================
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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

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

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

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

Windows 中可能有多个用于“拨号”VPN 的 API,它们的功能略有不同?

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

har*_*ymc 4

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

  1. VPN 突然获得了一条默认路由 ( 0.0.0.0),该路由在您重新启动 VPN 时并不存在
  2. 本地路由的度量值过高,达到 4500+。

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

因此我建议:

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