我在 Ubuntu 16 系统上设置了 OpenVPN。我有两个 VPN 连接,一个是通过 VPN 提供商,因此所有到网络的流量都必须经过该连接。我们将其称为 VPN1。
第二个是私人 OpenVPN 服务器,因此我可以通过该 VPN 连接到屋外的家庭服务器。我们将其称为 VPN2。
我想要做的是允许所有互联网流量通过 VPN1,同时连接到 VPN2 但只通过它路由 VPN2 流量(IP 范围 10.8.0.0/24),从而有效地允许我在屋外连接到它。
我尝试将两个连接的所有配置放在同一个.conf
文件中,但失败了,这次尝试甚至没有启动,还出错了。我还尝试在 VPN1 运行时将 VPN2 作为进程而不是服务运行,但失败了,这根本无法连接到 VPN2,1 优先。
我该如何同时连接两个 VPN 连接、通过服务启动并通过第一个连接路由所有互联网流量?
编辑
VPN1 配置:
client
dev tun
proto udp
remote us-east.vpndomain.com 1198
resolv-retry infinite
nobind
persist-key
persist-tun
cipher aes-128-cbc
auth sha1
tls-client
remote-cert-tls server
auth-user-pass auth.txt
comp-lzo
verb 1
reneg-sec 0
crl-verify crl.rsa.2048.pem
ca ca.rsa.2048.crt
disable-occ
redirect-gateway def1
VPN2 配置:
remote {privateVPN-IP}
comp-lzo
dev tun
auth-user-pass /etc/openvpn/ovpn.txt
ca /etc/openvpn/ca.crt
client
route 0.0.0.0 192.0.0.0 net_gateway
route 64.0.0.0 192.0.0.0 net_gateway
route 128.0.0.0 192.0.0.0 net_gateway
route 192.0.0.0 192.0.0.0 net_gateway
这是作为service
守护进程从系统启动时运行的 openvpn 来完成的。
编辑2
我刚刚测试了删除 VPN2 配置的底部部分net_gateways
。奇怪的是,如果我先启动 VPN2,然后启动 VPN1,它就会工作。但如果先启动 VPN1,则 VPN2 将不起作用。
此外,打开几分钟后,VPN1 似乎因 AUTH 失败错误而奇怪地关闭。
在与 VPN1 断开连接之前,我收到此错误:
ERROR: Linux route add command failed: external program exited with error status: 2