不同主机上的多个openvpn客户端

我试图同时运行多个openvpn实例,所有工作正常运行一个单一的,但我想有几个实例,其中每个连接到不同的主机,从那里能够使用接口,我想。

我正在尝试这样的:

France.ovpn

client dev tun proto udp remote france.privateinternetaccess.com lport 1190 resolv-retry infinite persist-key persist-tun cipher aes-128-cbc auth sha1 tls-client remote-cert-tls server auth-user-pass /etc/openvpn/piaauth.txt comp-lzo verb 1 reneg-sec 0 crl-verify /etc/openvpn/crl.rsa.2048.pem ca /etc/openvpn/ca.rsa.2048.crt disable-occ lport 1189 rport 1198 

|

  sudo /usr/sbin/openvpn --config /etc/openvpn/France.ovpn --dev tun0 Fri Dec 16 16:59:32 2016 OpenVPN 2.3.10 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Feb 2 2016 Fri Dec 16 16:59:32 2016 library versions: OpenSSL 1.0.2g 1 Mar 2016, LZO 2.08 Fri Dec 16 16:59:32 2016 WARNING: file '/etc/openvpn/piaauth.txt' is group or others accessible Fri Dec 16 16:59:32 2016 UDPv4 link local (bound): [undef] Fri Dec 16 16:59:32 2016 UDPv4 link remote: [AF_INET]108.61.122.121:1198 Fri Dec 16 16:59:32 2016 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this Fri Dec 16 16:59:32 2016 [113b1963081eb5270c22e4405fb71051] Peer Connection Initiated with [AF_INET]108.61.122.121:1198 Fri Dec 16 16:59:34 2016 TUN/TAP device tun0 opened Fri Dec 16 16:59:34 2016 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0 Fri Dec 16 16:59:34 2016 /sbin/ip link set dev tun0 up mtu 1500 Fri Dec 16 16:59:34 2016 /sbin/ip addr add dev tun0 local 10.43.10.6 peer 10.43.10.5 Fri Dec 16 16:59:34 2016 Initialization Sequence Completed 

这之后,一切正常。 但是当我运行下一个ovpn实例时,我得到一些错误。

多伦多

 client dev tun proto udp remote ca-toronto.privateinternetaccess.com resolv-retry infinite persist-key persist-tun cipher aes-128-cbc auth sha1 tls-client remote-cert-tls server auth-user-pass /etc/openvpn/piaauth.txt comp-lzo verb 1 reneg-sec 0 crl-verify /etc/openvpn/crl.rsa.2048.pem ca /etc/openvpn/ca.rsa.2048.crt disable-occ lport 1192 rport 1198 

|

 sudo /usr/sbin/openvpn --config /etc/openvpn/Toronto.ovpn --dev tun1 Fri Dec 16 16:59:57 2016 OpenVPN 2.3.10 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Feb 2 2016 Fri Dec 16 16:59:57 2016 library versions: OpenSSL 1.0.2g 1 Mar 2016, LZO 2.08 Fri Dec 16 16:59:57 2016 WARNING: file '/etc/openvpn/piaauth.txt' is group or others accessible Fri Dec 16 16:59:57 2016 UDPv4 link local (bound): [undef] Fri Dec 16 16:59:57 2016 UDPv4 link remote: [AF_INET]172.98.67.16:1198 Fri Dec 16 16:59:57 2016 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this Fri Dec 16 16:59:58 2016 [484ec5eff7d70137ae07ee3ec5e62b80] Peer Connection Initiated with [AF_INET]172.98.67.16:1198 Fri Dec 16 17:00:00 2016 TUN/TAP device tun1 opened Fri Dec 16 17:00:00 2016 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0 Fri Dec 16 17:00:00 2016 /sbin/ip link set dev tun1 up mtu 1500 Fri Dec 16 17:00:00 2016 /sbin/ip addr add dev tun1 local 10.84.10.6 peer 10.84.10.5 RTNETLINK answers: File exists Fri Dec 16 17:00:00 2016 ERROR: Linux route add command failed: external program exited with error status: 2 RTNETLINK answers: File exists Fri Dec 16 17:00:00 2016 ERROR: Linux route add command failed: external program exited with error status: 2 Fri Dec 16 17:00:00 2016 Initialization Sequence Completed 

这里的IP链路IP地址 ,都失败了。

这是我的路线表

 Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 10.43.10.5 128.0.0.0 UG 0 0 0 tun0 default 192.168.1.1 0.0.0.0 UG 0 0 0 enp3s0 10.43.10.1 10.43.10.5 255.255.255.255 UGH 0 0 0 tun0 10.43.10.5 * 255.255.255.255 UH 0 0 0 tun0 10.84.10.1 10.84.10.5 255.255.255.255 UGH 0 0 0 tun1 10.84.10.5 * 255.255.255.255 UH 0 0 0 tun1 108.61.122.121. 192.168.1.1 255.255.255.255 UGH 0 0 0 enp3s0 128.0.0.0 10.43.10.5 128.0.0.0 UG 0 0 0 tun0 link-local * 255.255.0.0 U 1000 0 0 enp3s0 172.98.67.16 192.168.1.1 255.255.255.255 UGH 0 0 0 enp3s0 192.168.1.0 * 255.255.255.0 U 0 0 0 enp3s0 

而这个我的ifconfig

 enp3s0 Link encap:Ethernet HWaddr inet addr:192.168.1.128 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::beae:c5ff:fe5a:7ec/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1146017 errors:0 dropped:0 overruns:0 frame:0 TX packets:727717 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1500194552 (1.5 GB) TX bytes:117446235 (117.4 MB) Interrupt:40 tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.43.10.6 PtP:10.43.10.5 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:2143 errors:0 dropped:0 overruns:0 frame:0 TX packets:1715 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:2312566 (2.3 MB) TX bytes:170653 (170.6 KB) tun1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.84.10.6 PtP:10.84.10.5 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) 

我认为我只需要configuration一些路线,对吗?

第一个VPN实例使用push "redirect-gateway def1join服务器push "redirect-gateway def1 2条路由,使用0.0.0.0/1128.0.0.0/1 两个参数覆盖默认网关。

第二个VPN实例尝试相同,因为它们已经存在,所以无法添加这两个路由。 只允许1个默认路由。

您至less有2个选项:

  1. 向VPN实例2的客户端configuration添加指令route-noexec

–route-NOEXEC

不要自动添加或删除路由。 而是使用环境variables传递路由到 – 路由脚本。

现在路线将被拉,但不会添加到您的系统。 你可以使用脚本来做你自己的路由。 例:

 route-up add-routes.sh 
  1. 或者添加指令route-noexec到两个VPN实例的客户端configuration

添加路由脚本和基于策略的路由。