我有一个Ubuntu服务器,我通过SSH远程控制它,我需要在这台服务器上运行一个OpenVpn客户端,所以所有的stream量将通过VPN隧道,除了两件事情,1.从我的电脑在这里的SSH连接, 2.另一个程序使用自定义端口43210。
这是我所尝试过的。 我为所有不想使用VPN的stream量创build了一个新的ip规则表:
# reserved values 255 local 254 main 253 default 0 unspec # # local # #1 inr.ruhep 206 passvpn
我为passvpn表定义了使用本地非VPN设备的行为:
ip route add default via xxx.xxx.xxx.xxx dev eth0 table passvpn
其中xxx.xxx.xxx.xxx是我的网关
我添加一个新的IP规则来引导这些标记的stream量到表中:
ip rule add fwmark 66 table passvpn
我用这个掩码标记SSH和其他程序的stream量,使用端口号:
iptables -t mangle -A OUTPUT -p tcp --sport 22 -j MARK --set-mark 66
当我运行OpenVpn时,我的ssh连接终止了,并且不能build立任何新的连接,错误为“timedout”。 我想也许从我的电脑的连接请求不能到达VPN运行的服务器,所以我添加另一个iptables规则为:
iptables -t mangle -A INPUT -p tcp --sport 22 -j MARK --set-mark 66
但仍然没有工作。
有人可以告诉我,如果我在这里做错了什么? 任何build议将不胜感激,谢谢!