如何将所有stream量从特定端口路由到特定networking接口?

我有以下设置:

一台带有两个网卡的计算机连接到两个不同的路由器。 第一台路由器将所有来自5122端口的外部stream量redirect到22端口。这样我就可以使用ssh连接到机器。

我希望只使用第一台路由器进行ssh连接。 没有其他的。 所以我想通过第二个路由器指挥所有其他交通。

我怎样才能做到这一点?

喜欢这个:

1.标记数据包

在每个朝向端口5122的数据包上设置一个标记。

iptables -A PREROUTING -t mangle -p tcp --dport 5122 \ -j MARK --set-mark 1 

或者像这样,如果你想限制它的目的IP为10.10.10.10的数据包:

 iptables -A PREROUTING -t mangle -p tcp -d 10.10.10.10/32 --dport 5122 \ -j MARK --set-mark 1 

2.创build路由表/规则

使用规则创build路由表,将其用于标记的数据包。

 echo 201 ssh5122.out >> /etc/iproute2/rt_tables ip rule add fwmark 1 table ssh5122.out 

3.添加路线

添加路由表对应的路由。

 ip route add default via $ssh_router_ip dev $ssh_router_interface \ dev table ssh5122.out 

这应该工作。