在 OpenVPN 连接上将网络类型从未识别网络更改为专用网络

在 OpenVPN 连接上将网络类型从未识别网络更改为专用网络

是否可以在 Windows 7 中更改连接类型?我有一个 OpenVPN 连接,它被标识为“未识别的网络”,并且我不想将某些规则应用于防火墙中所有未识别的网络。

怎样才能克服这个困难呢?

答案1

答案2

您必须为 OpenVPN 网络接口添加默认网关。

我发现的方法是通过使用 OpenVPN 的网络接口添加到目标地址 0.0.0.0 的路由。

在这个例子中,我有一台计算机,其物理接口的 IP 地址为 10.20.20.20 (网络 10.20.20.0/24),OpenVPN TAP 接口的 IP 地址为 10.1.1.10/24 (网络 10.1.1.0/24)(VPN 网络上服务器的 IP 地址为 10.1.1.1)。

1)找出您的网络接口和有关当前到 0.0.0.0 的路由的信息:

C:\>route print -4
===========================================================================
Interface List
 15...00 ff 6c 3f 5b 0c ......TAP-Win32 Adapter V9
 11...00 0e 0c d9 b5 c8 ......Intel(R) PRO/1000 GT Desktop Adapter
===========================================================================

IPv4 Route table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway        Interface Metric
          0.0.0.0          0.0.0.0       10.20.20.1      10.20.20.20     10
       10.20.20.0    255.255.255.0         On-link       10.20.20.20    266
...

现在我们知道您的 OpenVPN 网络接口号是 15。另一个重要信息是到 0.0.0.0 的当前路由的度量值。OpenVPN 网络到 0.0.0.0 的新路由应具有比当前路由更高的度量值,以避免将整个网络流量重定向到您的 OpenVPN 连接而不是物理网络(如果两条路由具有相同的路由,则将选择度量值较低的路由)。

2)通过OpenVPN接口添加至0.0.0.0的路由:

route -p add 0.0.0.0 mask 0.0.0.0 10.1.1.1 metric 50 if 15

此命令通过接口 15 添加到 0.0.0.0 的路由,度量至少为 50,网关为 10.1.1.1。将网关替换为您自己的网关(VPN 网络上服务器的 IP 地址)。当然,将接口号替换为您自己的接口号。

-p 参数将路由添加为永久路由,因此系统重启后它将被保留。

3) (重新)连接到 VPN 服务器并再次查看路由表:

C:\>route print -4
...
Active Routes:
Network Destination        Netmask          Gateway        Interface Metric
          0.0.0.0          0.0.0.0       10.20.20.1      10.20.20.20     10
          0.0.0.0          0.0.0.0         10.1.1.1        10.1.1.10     80
...

现在网络和共享中心已经识别出网络,因此应该会出现‘设置位置......’窗口;-)

答案3

我不知道为什么上述解决方案如此复杂,例如使用

route add -p commands

甚至添加到 OpenVPN server.conf 文件

route 0.0.0.0 vpn_subnet_mask default_gateway

可以通过以下方法轻松解决该错误:

Control Panel\Network and Internet\Network Connections

(1)右键单击 OpenVPN tun/tap 接口并选择状态>选择详细信息>记下 IPv4 DHCP 服务器条目。您需要在 (2) 中将其填写为默认网关。

(2)右键单击 OpenVPN tun/tap 接口并选择“属性”>“打开 TCP/IPv4 属性”>“单击高级”。在“默认网关”下,单击“添加”,然后输入与用作 DHCP 服务器的完全相同的条目,度量为“自动”。现在等待适配器神奇地显示为私有。

您刚才所做的与上述两种解决方案完全相同 - 添加持久路由 - 但这甚至更好 - 它在重新启动后仍然存在,因为它是在 Windows 中配置的。您实际上可以通过键入“route print”来检查 cmd,您将看到路由表中添加了 1 个条目,以及持久路由下添加了 1 个条目。如果新路由的度量小于物理适配器的度量,请重做 (2) 并将度量从“自动”更改为高于物理适配器的值。

如果您的网关(openvpn 服务器 IP)是静态的,则添加它(2)即可完成。

答案4

这对于某些 VPN 连接来说效果很好,但假设您的 VPN 的默认网关不断变化。这意味着,每次重置计算机时,您都必须反复使用“route add”命令。这是不可接受的。

在研究 Windows 7 中的 VMware 问题时,我遇到了一个名为 *NdisDeviceType 的注册表 dword。它的作用是告诉 Windows 不要尝试识别特定的虚拟网络适配器。您所要做的就是进入注册表并导航到HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}

到达那里后,在键中查找名为“Tap-win”的字符串,该字符串DriverDesc的值为“Tap-win”。这是处理 OpenVPN 使用的虚拟适配器的键。接下来创建一个名为 *NdisDeviceType 的双字,并为其分配值 1。

最后重启电脑。现在你不应该看到未识别的网络。在尝试修改之前,请记住备份你的注册表。如果你使用的是 OpenVPN,并且你不习惯这样做,你可以下载脚本这将为你做到这一点。

相关内容