透過 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 系統 --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

相關內容