同时通过两个 VPN 进行拆分隧道

同时通过两个 VPN 进行拆分隧道

我想在 Ubuntu Server 14.04 上运行两个 OpenVPN 客户端实例。我有两个可以独立工作的 .conf 文件(都设置为不同的接口 - tun0 和 tun1)。我想同时运行这两个文件,并将一个应用程序的流量路由到一个 VPN(私人互联网访问),将所有其他流量路由到另一个 VPN(我在另一台机器上设置的 OpenVPN 服务器)。

我一直在研究,但还没有找到办法来实现这一点。如果这有帮助,我已经包含了我当前的路由表和其中一个服务器 .conf。OpenVPN 在启动时会自动启动它们。

私人互联网接入 .conf

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

答案1

您需要通过隧道为您的应用程序添加路由。

例如,如果应用程序 A 位于 10.70.82.5,并且您想要通过私人互联网访问路由应用程序 A,则应运行以下命令:

route add 10.70.82.5 gw "IP address of gateway at PIA"

然后,要通过其他 VPN 路由所有其他流量,您需要做两件事:

  1. 通过常规默认网关将流量路由到其他 VPN 服务器

    route add "其他 VPN 服务器的 IP 地址" gw 1​​55.92.105.254

根据您帖子中的路由表,我在此假设这是您的正常默认网关。

  1. 通过其他 VPN 服务器网关创建默认路由

    route add default gw "其他VPN服务器网关IP"

请记住,两个 OpenVPN 服务器都需要执行 NAT,以便返回数据包能够通过 VPN 正确到达。

相关内容