通过 VPN 隧道传输服务器流量但保留 SSH 访问

通过 VPN 隧道传输服务器流量但保留 SSH 访问

我想通过 VPN 传输我服务器上的流量。

问题是,当我通过 openVpn 激活 VPN 时,我会通过 SSH 断开与服务器的连接,并且必须通过硬重启来重新启动服务器。

除了 SSH 之外,有没有其他方法可以通过 VPN 路由所有流量?

我还希望这只是暂时的,这意味着我希望能够将其关闭并让流量通过正常渠道传输。

我已经尝试过这里发布的解决方案https://unix.stackexchange.com/questions/145635/debian-cli-torrent-program-through-vpn/145783#145783但它没有作用。

附加信息:

route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         XXX.XXX.XXX.XXX  0.0.0.0         UG    100    0        0 eth0
XXX.XXX.XXX.XXX    0.0.0.0         255.255.255.0   U     0      0        0 eth0

启动 OpenVPN 时我直接被锁定。此外,我的服务器应该作为客户端运行,通过另一台服务器路由所有流量。

编辑:

我按照这里的解释匿名化 OpenVPN 允许 SSH 访问内部服务器

现在我正在跑步

openvpn --config USVPN.ovpn --script-security 3 system --up /home/user/startVPNScript.sh

startVPNScript.sh 包含

ip rule add fwmark 65 table novpn
sudo ip route add default via XXX.XXX.XXX.XXX dev eth0 table novpn
ip route flush cache
iptables -t mangle -A OUTPUT -p tcp --sport 22 -j MARK --set-mark 65

我也执行了这个:

echo "201 novpn" >> /etc/iproute2/rt_tables

并且它是永久的。

但是在执行 openVPN 命令后,我仍然被锁定,并且必须通过 ServerProvider 的控制面板进行硬重启。

编辑2

这是启动 VPN 之前的路由和防火墙规则(所有内容均为空以进行测试)

#novpn route table
default via DEFAULT.GATEWAY dev eth0

#normal route table

default DEFAULT.GATEWAY dev eth0  metric 100
XXX.XXX.XXX.XXX/24 dev eth0  proto kernel  scope link  src XXX.XXX.XXX.YYY

#iptable mangle

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination        

Chain INPUT (policy ACCEPT)
target     prot opt source               destination        

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination        

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination        
MARK       tcp  --  anywhere             anywhere             tcp spt:ssh MARK set 0x41

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination      


#iptable main

Chain INPUT (policy ACCEPT)
target     prot opt source               destination        

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination        

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination        

OpenVPN连接建立后的规则如下:

#novpn route table

default via DEFAULT.GATEWAY dev eth0

#normal route table

0.0.0.0/1 via 10.165.1.5 dev tun0
default via DEFAULT.GATEWAY dev eth0  metric 100
10.165.1.1 via 10.165.1.5 dev tun0
10.165.1.5 dev tun0  proto kernel  scope link  src 10.165.1.6
108.61.13.43 via DEFAULT.GATEWAY dev eth0
128.0.0.0/1 via 10.165.1.5 dev tun0
XXX.XXX.XXX.XXX/24 dev eth0  proto kernel  scope link  src XXX.XXX.XXX.YYY

#iptable mangle

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
MARK       tcp  --  anywhere             anywhere             tcp spt:ssh MARK set 0x41

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

#iptable main

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

相关内容