我想在Ubuntu Server 14.04上运行两个OpenVPN客户端实例.我有两个可以独立工作的.conf文件(两者都设置为不同的接口 – tun0和tun1).我想同时运行两个,并将流量从一个应用程序路由到一个VPN(专用Internet访问),将所有其他流量路由到另一个VPN(我在另一台机器上设置的OpenVPN服务器).
我一直在做一些研究,但还没有找到一种方法来完成这项工作.如果这有帮助,我已经包含了我当前的路由表和一个服务器.confs. OpenVPN在启动时自动启动它们.
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 10.160.1.5 128.0.0.0 UG 0 0 0 tun0 default 155.92.105.254 0.0.0.0 UG 0 0 0 eth0 10.160.1.1 10.160.1.5 255.255.255.255 UGH 0 0 0 tun0 10.160.1.5 * 255.255.255.255 UH 0 0 0 tun0 64-237-37-119.c 155.92.105.254 255.255.255.255 UGH 0 0 0 eth0 128.0.0.0 10.160.1.5 128.0.0.0 UG 0 0 0 tun0 155.92.104.0 * 255.255.254.0 U 0 0 0 eth0
解决方法
您需要通过隧道为应用程序添加路由.
例如,如果应用程序A位于10.70.82.5,并且您希望通过专用Internet访问路由应用程序A,则应运行以下命令:
route add 10.70.82.5 gw "IP address of gateway at PIA"
然后,要通过其他VPN路由所有其他流量,您需要做两件事:
>通过普通的默认网关将流量路由到其他VPN服务器
route添加“其他VPN服务器的IP地址”gw 155.92.105.254
在这里,我假设这是您的普通默认网关,基于您帖子中的路由表.
>通过其他VPN服务器网关创建默认路由
route add default gw“其他VPN服务器网关IP”
请记住,两个OpenVPN服务器都需要执行NAT,以便返回数据包通过VPN正确到达.