OpenVPN客户端在Windows 7上,数据包不路由

我在Windows 7上有一个OpenVPN客户端,通过点击连接到OpenVPN服务器。
隧道正确build立。
AFAIK,点击意味着我的虚拟适配器“虚拟”连接到远程局域网,获得一个远程局域网IP并参与局域网广播domani等等。
当隧道build立时, 我的虚拟适配器获得正确的IP。
但是我无法ping通远程networking中的其他主机。
这可能是sererver方面的一个问题,但在检查之前,我已经注意到在客户端有一些奇怪的东西,就像Windows处理虚拟接口一样。
让我们开始。
当通道启动时,虚拟接口也启动。 在我的路由表中,我可以看到我的物理networking192.168.2.0,事实上我的本地IP是192.168.2.134。
然后我可以看到远程networking172.16.1.0,直接连接到我的接口172.16.1.40。 到现在为止还挺好。 (我已经删除了回环条目)

           0.0.0.0 0.0.0.0 192.168.2.1 192.168.2.134 25
        172.16.1.0 255.255.255.0在线链接172.16.1.40 276
       172.16.1.40 255.255.255.255在线链接172.16.1.40 276
      172.16.1.255 255.255.255.255在线链接172.16.1.40 276
       192.168.2.0 255.255.255.0 On-link 192.168.2.134 281
     192.168.2.134 255.255.255.255 On-link 192.168.2.134 281
     192.168.2.255 255.255.255.255在线链接192.168.2.134 281
         224.0.0.0 240.0.0.0在线链接172.16.1.40 276
         224.0.0.0 240.0.0.0 On-link 192.168.2.134 281
   255.255.255.255 255.255.255.255在线链接172.16.1.40 276
   255.255.255.255 255.255.255.255在线链接192.168.2.134 281

因此,不应该通过网关访问远程networking上的客户端,而是通过由openvpn提供的虚拟接口直接路由。
但是,当我跟踪到远程networking上的主机(我的PC应该看作本地)的路由时,我的客户端将它路由到网关,显然,迷路了。

 C:\ Users \ agostinox> tracert 172.16.1.17
   1 1ms 1ms 1ms 192.168.2.1
   2 14 ms 96 ms 101 ms 192.168.1.1
   3 * * * Richiesta scaduta。
   4 24 ms 12 ms 12 ms 172.17.129.137
   5 * * * Richiesta scaduta。

在这里,似乎系统将包直接路由到网关,因为它没有看到直接连接的networking适配器。 为什么会这样呢?

编辑1 – 我的OpenVPN客户端configuration的详细信息

 C:\ Users \ agostinox> openvpn --version
 OpenVPN 2.3.6 x86_64-w64-mingw32 [SSL(OpenSSL)] [LZO] [PKCS11] [IPv6]build立于2015年3月19日
库版本:OpenSSL 1.0.1m 2015年3月19日,LZO 2.08

和我的客户端configuration:

远程xxx.xxx.xxx.xxx
密码AES-128-CBC
端口1194
原型TCP客户端
开发水龙头
 ifconfig 172.16.1.40 255.255.255.0
开发节点“Connessione alla rete locale(LAN)3”
秘密a_file_containing_my_preshared_key.key
 ping 10
 COMP-LZO
动词4
静音10

编辑2,我的服务器configuration的详细信息

这是我的(pfsense)服务器configuration的“备份”。
正如你所看到的configuration是尽可能的。

 <的openvpn>
   <openvpn的服务器>
   <VPNID> 2 </ VPNID> 
   <模式> p2p_shared_key </模式> 
   <协议> TCP </协议> 
   <dev_mode>抽头</ dev_mode> 
   <ipaddr /> 
   <接口> WAN </接口> 
   <LOCAL_PORT> 1194 </ LOCAL_PORT> 
   <description> <![CDATA [testing点击OpenVPN服务器]]> 
   </描述>
   <custom_options /> 
   <shared_key> ...我的共享密钥,省略... </ shared_key> 
   <encryption> AES-128-CBC </encryption> 
   <发动机>无</发动机> 
   <tunnel_network /> 
   <tunnel_networkv6 /> 
   <remote_network /> 
   <remote_networkv6 /> 
   <gwredir /> 
   <local_network /> 
   <local_networkv6 /> 
   <maxclients /> 
   <压缩>是</压缩> 
   <passtos /> 
   <client2client /> 
   <dynamic_ip /> 
   <pool_enable>是</ pool_enable> 
   <topology_subnet /> 
   <serverbridge_dhcp /> 
   <serverbridge_interface /> 
   <serverbridge_dhcp_start /> 
   <serverbridge_dhcp_end /> 
   <netbios_enable /> 
   <netbios_ntype> 0 </ netbios_ntype> 
   <netbios_scope /> 
   </ openvpn的服务器>
 </ openvpn下>

编辑3,输出ipconfig / all

当隧道启动时,这是输出

 ipconfig / all
 Scheda以太网TAP接口:

   每个连接的DNS的具体数据:
    Descrizione。  。  。  。  。  。  。  。  。  。  。  。  。  :TAP-Windows适配器V9
    Indirizzo fisico。  。  。  。  。  。  。  。  。  。  。  :00-FF-7B-FB-32-C0
    DHCP abilitato。  。  。  。  。  。  。  。  。  。  。  。  :Sì
    Configurazione automatica abilitata:Sì
    Indirizzo IPv6地区rispetto al collegamento。  :fe80 :: 3838:3c0c:c3c6:fcca%35(Preferenziale)
    Indirizzo IPv4。  。  。  。  。  。  。  。  。  。  。  。  :172.16.1.40(Preferenziale)
   子网掩码 。  。  。  。  。  。  。  。  。  。  。  。  。  :255.255.255.0
   租赁奥特纳托。  。  。  。  。  。  。  。  。  。  。  。  :giovedì16 aprile 2015 09:57:32
    Scadenza租赁。  。  。  。  。  。  。  。  。  。  。  :venerdì15 aprile 2016 09:57:32
   网关predefinito。  。  。  。  。  。  。  。  。  :fe80 :: 20c:29ff:fe92:2272%35
   服务器DHCP。  。  。  。  。  。  。  。  。  。  。  。  。  :172.16.1.0
    IAID DHCPv6。  。  。  。  。  。  。  。  。  。  。  :1107361659
    DUID客户端DHCPv6。  。  。  。  。  。  。  。  :00-01-00-01-14-AE-89-EA-F0-4D-A2-63-11-97
   服务器DNS。  。  。  。  。  。  。  。  。  。  。  。  。  :fec0:0:0:ffff :: 1%1
                                            FEC0:0:0:FFFF :: 2%1
                                            FEC0:0:0:FFFF :: 3%1
    NetBIOS su TCP / IP。  。  。  。  。  。  。  。  。  。  :Attivato

不是太Windows精明wrt。 OpenVPN,FWIW,这是我的出价是什么罪魁祸首可能在这里:

  • 看看你的Windows路由命令的输出,似乎你缺less一个OpenVPNnetworking的网关条目。 确实,你在VPNnetworking(172.16.1.40地址)上有一个地址,但是没有为该networking定义gw。 在我的机器上,我可以访问几个networking,每个networking都有自己的GW,如下所示: 0.0.0.0 0.0.0.0 172.20.68.2 172.20.69.3 20 10.0.3.0 255.255.255.0 172.20.68.5 172.20.69.3 21要解决此问题,请打开你的OpenVPN的服务器configuration,并添加一行这样的: push "route 172.16.1.0 255.255.255.0" 。 这确保了每当到服务器的连接启动时,正确的路由被推送到客户端。

  • 你也可能错过返回路由 – 有时(并不总是出于我不太清楚的原因),你需要在服务器ccd目录( /etc/openvpn/ccd/<vpn>/<client-id>为给定客户端的configuration条目添加一个iroute /etc/openvpn/ccd/<vpn>/<client-id> )。 当客户端连接到服务器时,这将引起反向路由。 我的一个ccd文件的内容如下所示: iroute 192.168.87.0 255.255.255.0这确保OpenVPN服务器可以正确地将内容路由回客户端

  • 我认为你也可以在主服务器configuration中添加iroute ,但是即使客户端没有连接,它们也会被定义。 这将看起来像这样: route 192.168.87.0 255.255.255.0 192.168.11.1

  • 编辑:另外请注意,在Windows上运行OpenVPN客户端需要pipe理权限。 否则,OpenVPN将无法添加路由等(如注释中提到的问题)。 最好的办法是将其作为服务运行,以便在启动时自动连接。 至less,在我的情况下,这真的很好。

我想这可能会让你再次去。 OpenVPN真的很棒,我已经成功地将它用于商业和游戏目的一段时间了:-)

我有一种感觉,你不是从服务器正确推送你的路线。 我注意到你的VPN网关是一个IPv6地址。

尝试使用server.conf中的push选项来推送路由。 您可能还需要添加server指令,以便可以保留客户端子网。

如果你在linux上,你也需要在设置了sysctl的VPN服务器上有net.ipv4.ip_forward = 1

最好,

-Iulian

在打开的vpn install的bin文件夹中findOpenVPNgui.exe,openvpn.exe和openvpnserver.exe文件。 右键单击可执行文件,select属性,然后select兼容性选项卡。 单击“以pipe理员身份运行此程序”checkbox,然后closures属性面板。 完全closuresOpenVPN(使用任务pipe理器确认没有可执行文件仍在运行)。 再次启动OpenVPN并再次尝试。