如何为 Openvpn 运行控制台设置 iptables 并获取 ssh 收入

如何为 Openvpn 运行控制台设置 iptables 并获取 ssh 收入

我有一台 Ubuntu 服务器,我通过 ssh 对其进行远程控制,我需要在此服务器上运行 OpenVpn 客户端,因此所有流量都将通过 VPN 隧道,除了两件事,1. 来自我这里的计算机的 ssh 连接,2. 另一个程序使用自定义端口 43210。

这是我尝试过的。我为所有不想使用 VPN 的流量创建了一个新的 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 规则,将那些标记的流量引导至表:

ip rule add fwmark 66 table passvpn

我使用这个 66 掩码标记 SSH 和其他程序的流量,使用端口号:

iptables -t mangle -A OUTPUT -p tcp --sport 22 -j MARK --set-mark 66

当我运行 OpenVpn 时,我的 ssh 连接终止,并且无法建立任何新连接,错误为“timedout”。我想也许我的电脑的连接请求无法到达正在运行 VPN 的服务器,所以我添加了另一条 iptables 规则:

iptables -t mangle -A INPUT -p tcp --sport 22 -j MARK --set-mark 66

但仍然不起作用。

有人能告诉我我这里做错了什么吗?任何建议都会很感激,谢谢!

相关内容