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

Fil*_*erg 23 networking firewall windows-7 openvpn

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

如何克服这一点?

小智 19

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

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

在此示例中,我有一台计算机,其物理接口的 IP 地址为 10.20.20.0/24 网络中的 10.20.20.20,网络 10.1.1.0/24 中 IP 地址为 10.1.1.10/24 的 OpenVPN TAP 接口(服务器的 IP 地址) VPN 网络为 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
...
Run Code Online (Sandbox Code Playgroud)

现在我们知道你的 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
Run Code Online (Sandbox Code Playgroud)

此命令通过接口 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
...
Run Code Online (Sandbox Code Playgroud)

现在在网络和共享中心识别网络,因此应该出现“设置位置...”窗口;-)

  • 小心,保持你的指标大于你的正常界面指标!否则你会像我刚才那样让你的主机离线。 (3认同)

小智 12

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

route add -p commands
Run Code Online (Sandbox Code Playgroud)

甚至添加到 OpenVPN server.conf 文件

route 0.0.0.0 vpn_subnet_mask default_gateway
Run Code Online (Sandbox Code Playgroud)

该错误可以简单地通过以下方式解决:

Control Panel\Network and Internet\Network Connections
Run Code Online (Sandbox Code Playgroud)

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

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

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

如果您的网关(openvpn 服务器 IP)是静态的,添加它 (2) 就可以了。


小智 5

这对某些 VPN 连接很有效,但假设您的 VPN 的默认网关不断变化。这意味着,每次重置计算机时,您都必须一遍又一遍地使用“路由添加”命令。这是不可接受的。

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

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

最后重启电脑。现在您不应该看到未识别的网络。请记住在尝试进行此修改之前备份您的注册表。如果您正在使用 OpenVPN,并且您觉得这样做不舒服,您可以下载一个脚本来为您执行此操作。


dro*_*ren 5

我认为解决这个问题的最简单和最好的方法是这样做:

  1. 打开您的 OpenVPN 配置文件。
  2. 添加这一行:(route 0.0.0.0 0.0.0.0 vpn_gateway 50不要更改 vpn_gateway,它是一个环境变量)并保存。
  3. 连接 VPN
  4. 如果需要,请继续执行第 5 步和第 6 步。
  5. 打开运行 (Win+R) 并输入secpol.msc“网络列表管理器策略”
  6. 右键单击您的 VPN 网络,然后属性-> 网络位置。选择专用网络。

这样您就不必关心您的 VPN 网关 IP,并且还可以使用动态 VPN 网关。