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


22

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

如何征服这一点?

Answers:



18

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

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

在此示例中,我有一台计算机,其物理接口在网络10.20.20.0/24中具有IP地址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
...

现在,我们知道您的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
...

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


这是正确的答案。
jnm2 2012年

2
注意,请保持指标大于常规界面指标!否则,您将像我刚才那样使主机脱机。
Linef4ult 2015年

11

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

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的注册表双字。这是什么,它告诉Windows不要尝试识别特定的虚拟网络适配器。所有您需要做的就是进入注册表并导航到HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318

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

最后重新启动计算机。现在,您不应该看到一个身份不明的网络。尝试进行此修改之前,请记住要备份注册表。如果您使用的是OpenVPN,但您对此感到不舒服,则可以下载一个脚本来完成此操作。


3

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

  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网关一起使用。


您还可以在拆分隧道VPN上将指标(50)设置为更高,以解决此问题,而不会破坏拆分。500为我工作
computergeek125

2

此方法有效,但最好是通过手动更改TAP适配器的IP设置将其更进一步。使用ipconfig找出正确的设置和使用网关DNS服务器。

更新:忽略此步骤-如果您这样做,您的IP地址将不会被屏蔽。我不知道为什么会这样,但是我已经做了我能想到的一切来扭转它,但是唯一的方法是撤消我在此步骤中所做的并重新启动计算机。

更新:我遇到的一个问题是,我将Windows 7配置为在启动Windows时启动连接。有时,当我重新启动或关闭计算机时,网络将恢复为未知状态。该路线仍将在表格中。一种解决方法是修改我连接到的VPN客户端的配置文件。我添加的命令是:

#Dummy default gateway to work around Windows 'unidentified network'/'unknown network' (put a "#" in front of this)
route-metric 30
route 0.0.0.0 0.0.0.0 10.0.0.1.

通过读取显示有以下内容的路由表来检索指标:

route print -4

VPN连接到的网关10.0.0.1。例如,当我连接到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.100        25
          0.0.0.0      128.0.0.0       10.0.0.1     10.0.7.102        30

第一个条目是到我路由器的路由。第二个是VPN连接。现在,当我修改VPN连接文件(在我的情况下为vpn.ovpn)时,我使用网络目标并将网络掩码设置为0.0.0.0,并使用10.0.0.1作为网关。然后,我注意到该指标设置为30,并在配置文件中将其设置为30。


2

如果已经完成了默认网关的添加(通过命令Windows GUI),则可能仍需要一种方法向Windows指示您要对网络应用“专用”或“域”的名称。也许您不小心将网络标记为“公共”,或者由于任何原因从来没有机会通过“设置位置...”提示进行选择。我在Windows 10上遇到了这种情况。

要通过注册表进行设置,请浏览至“网络配置文件”项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles个人档案键从这里开始,Profiles密钥包含带有GUID的密钥列表,该列表与计算机已保存的所有网络相对应。您可以浏览这些GUID键,并通过匹配ProfileName键中的值来查找网络。Profile ID键和ProfileName值Profiles密钥中找到正确的网络后,您想要更改Category网络密钥的值。Profile ID键中的Category值

值中的Category0表示公共网络。您可以更改此值以1将网络标记为“专用”或2将网络指定为“域”网络。要应用此更改,您可能需要重新初始化网络连接。


如果由于“ TenForums.com”水印而需要删除图像,请随时编辑我的问题或让我知道。
palswim

0

上面提到的所有解决方案实际上只是解决方法,但是每个商品/产品都有自己的买家。

最简单的方法是删除0.0.0.0创建的未知路由,然后所有内容都应恢复原位。只需从命令行运行cmd.exe(以管理员身份),然后键入route delete 0.0.0.0就可以了。

我不认为注册垃圾路线和其他垃圾,或者反之亦然,让大象飞起来不是最好的主意之一...祝您好运!


0

在我的Windows 7计算机上,“身份不明的网络”是OpenVPN问题的症状,而不是原因。就我而言,解决方法是使用管理员权限启动OpenVPN客户端GUI。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.