1
liyvhg 2016-06-04 11:46:00 +08:00 via Android
为什么不监听 interface 对应的 IP ?
|
2
jimzhong 2016-06-04 12:23:43 +08:00
可以 bind 到对应 IP 地址
或者用 iptables 打 mark ,然后在 ip rule 里面设规则 |
3
KCheshireCat 2016-06-04 16:59:55 +08:00
如果程序是你自己写的你可以搜索下"SO_BINDTODEVICE"
否则,参考 2 楼 |
4
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 源端口 指定路由。 这个我没试过,楼下补充。 |