我想通过 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