我想将出站流量路由到 ssh 端口的特定接口。我们有一个这样的路由表:
default via gw_ip dev eth0
default via gw_ip dev eth1 metric 10001
10.x.y.z/23 dev eth0 proto kernel scope link src eth0_ip
10.x.y.z/23 dev eth1 proto kernel scope link src eth1_ip
正如您所看到的,由于两个接口位于同一子网中,因此所有出站流量默认都会通过 eth0_ip 进行,因为它的指标值较低。我的用例是使用 eth1 进行所有入站和出站通信。我可以通过修改指标值和/或仅定义 eth1 的默认规则来实现此目的。
然而,问题是系统上有一些自动运行状况检查,它们通过 telnet 到 ssh 端口 (22) 来测试系统运行状况。此健康检查将始终在 eth0 上进行,并且如果我们通过将默认接口设置为 eth1 来修改 IP 表,则会失败。我认为这是因为测试将尝试连接 eth0 ip,但得到的响应将来自 eth1 ip。
作为一种解决方法,我想是否可以将出站流量设置为仅针对端口 22 的 eth0。因此,当运行状况检查尝试连接到端口 22 上的 eth0 时,它仅从 eth0 获得响应。