是否可以在 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,并且你不习惯这样做,你可以下载脚本这将为你做到这一点。