![同时通过两个 VPN 进行拆分隧道](https://linux22.com/image/632467/%E5%90%8C%E6%97%B6%E9%80%9A%E8%BF%87%E4%B8%A4%E4%B8%AA%20VPN%20%E8%BF%9B%E8%A1%8C%E6%8B%86%E5%88%86%E9%9A%A7%E9%81%93.png)
我想在 Ubuntu Server 14.04 上运行两个 OpenVPN 客户端实例。我有两个可以独立工作的 .conf 文件(都设置为不同的接口 - tun0 和 tun1)。我想同时运行这两个文件,并将一个应用程序的流量路由到一个 VPN(私人互联网访问),将所有其他流量路由到另一个 VPN(我在另一台机器上设置的 OpenVPN 服务器)。
我一直在研究,但还没有找到办法来实现这一点。如果这有帮助,我已经包含了我当前的路由表和其中一个服务器 .conf。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
答案1
您需要通过隧道为您的应用程序添加路由。
例如,如果应用程序 A 位于 10.70.82.5,并且您想要通过私人互联网访问路由应用程序 A,则应运行以下命令:
route add 10.70.82.5 gw "IP address of gateway at PIA"
然后,要通过其他 VPN 路由所有其他流量,您需要做两件事:
通过常规默认网关将流量路由到其他 VPN 服务器
route add "其他 VPN 服务器的 IP 地址" gw 155.92.105.254
根据您帖子中的路由表,我在此假设这是您的正常默认网关。
通过其他 VPN 服务器网关创建默认路由
route add default gw "其他VPN服务器网关IP"
请记住,两个 OpenVPN 服务器都需要执行 NAT,以便返回数据包能够通过 VPN 正确到达。