Siril
2016-06-24 12:52:28 +08:00
我认为楼主问的不是在哪个接口上监听端口,那不难吧。
而是一个更纠结的问题: reverse path filter.
也可能是另一个纠结的问题:策略路由。
如果 eth0 、 eth1 、 eth2 上的 ip ,从客户端都能路由过来,
而且 3 个接口无论从哪个接口的网关(如果有的话) 出去都能路由到客户端,
那么在 linux 机器上关了 rpf 就行。。。几行 sysctl 的事儿。。。 无所谓客户端连接这 3 个 ip 中的哪个。。。
举个栗子:
三层交换机上弄 4 个 vlan ,
vlan1 192.168.1.1 ,
vlan2 192.168.2.1 ,
vlan3 192.168.3.1 ,
vlan4 192.168.4.1 。
此 linux 服务器的
eth0 接 vlan1 , ip 192.168.1.2/24 ,
eth1 接 vlan2 , ip 192.168.2.2/24 ,
eth3 接 vlan3 , ip 192.168.3.2/24 。
需要从 客户端 192.168.4.123 上访问到 192.168.1.2:8000 , 192.168.2.2:8001 , 192.168.3.2:8002 。
如果 linux 服务器默认启用 rpf ,则只有 linux 服务器的默认网关在哪个接口上,对应的服务才能访问到。 对于另外两个 ip ,数据包进来的端口和出去的不是同一个端口,所以被 rpf 过滤掉而不通。
或者另一种情况:
linux 服务器上弄策略路由,根据源 ip 源端口 指定路由。 这个我没试过,楼下补充。