我在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适配器。 为什么会这样呢?
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
这是我的(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下>
当隧道启动时,这是输出
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并再次尝试。