双重 VPN 网络

双重 VPN 网络

我必须将服务器与 VPN 服务(匿名器)连接起来,并通过所述 VPN 服务路由所有互联网流量。

我已经努力了两个多星期才得到这些命令在 VPS 上运行 OpenVPN 客户端

sudo iptables -t mangle -I PREROUTING -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -t mangle -A PREROUTING -i enp3s0 -m conntrack --ctstate NEW -j CONNMARK --set-mark 1234

sudo iptables -t mangle -A OUTPUT -m connmark --mark 1234 -j MARK --set-mark 4321

sudo ip route add default dev enp3s0 via 192.168.0.1 table 3412

sudo ip rule add fwmark 4321 table 3412

这些命令运行完美。服务器连接到 VPN 服务,获取 tun0 接口,然后我就可以通过 SSH 在本地和远程连接到我的服务器。

现在我想使用 tun1 接口添加我自己的 OpenVPN 服务器(到我的服务器),并通过第二个 VPN 通过 SSH 连接到我的服务器。

好的,我已经让 OpenVPN 运行并且 tun1 接口也出现了,但是这里出现了问题。

我确信这个命令应该可以解决问题:

sudo iptables -t mangle -I PREROUTING -i tun1 -m conntrack --ctstate NEW -j ACCEPT

但事实并非如此......

一旦第一个 VPN 连接,系统路由表就会发生变化,我无法使用第二个 VPN 的 VPN 客户端远程连接到我的服务器。

如果我断开与第一个 VPN 的服务器连接,那么我就可以使用第二个 VPN 连接到服务器。

我知道应该有一个命令可以拯救我。

任何帮助表示感谢

编辑:

我尝试过这个解决方案但它也不起作用:

sudo iptables -t mangle -I PREROUTING -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -t mangle -A PREROUTING -i enp3s0 -m conntrack --ctstate NEW -j CONNMARK --set-mark 1234
sudo iptables -t mangle -A PREROUTING -i tun1 -m conntrack --ctstate NEW -j CONNMARK --set-mark 2345

sudo iptables -t mangle -A OUTPUT -m connmark --mark 1234 -j MARK --set-mark 4321
sudo iptables -t mangle -A OUTPUT -m connmark --mark 2345 -j MARK --set-mark 5432

sudo ip route add default dev enp3s0 via 192.168.0.1 table 3412
sudo ip route add default dev tun1 via 10.8.0.1 table 3412

sudo ip rule add fwmark 4321 table 3412
sudo ip rule add fwmark 5432 table 3412

编辑:

这是路由表:

root@test:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.9.8.1        128.0.0.0       UG    0      0        0 tun0
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 enp3s0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 enp3s0
10.9.8.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
10.8.0.0        10.8.0.2        255.255.0.0     UG    0      0        0 tun1
10.8.0.2        0.0.0.0         255.255.255.255 UH    0      0        0 tun1
128.0.0.0       10.9.8.1        128.0.0.0       UG    0      0        0 tun0
225.12.10.15    192.168.0.1     255.255.255.255 UGH   0      0        0 enp3s0

答案1

让我建议一种完全不涉及 iptables 的替代方法:

ip r add default dev enp3s0 via 192.168.0.1 table 101
ip rule add iif lo from 192.168.0.0/24 not to 192.168.0.0/24 table 101

或者

ip r add 192.168.0.0/24 dev enp3s0 table 101
ip r add default via 192.168.0.1 table 101
ip rule add iif lo from 192.168.0.0/24 table 101

如果not它不像我想象的那样起作用。

相关内容