多网卡Linux环境下Node.js/TypeScript应用绑定错误网卡、源IP异常的排查与修复求助
多网卡Linux环境下Node.js/TypeScript应用绑定错误网卡、源IP异常的排查与修复求助
我最近碰到了一个很头疼的问题,想向各位请教解决办法:
我在Linux服务器上运行着几个Node.js/TypeScript应用,有的涉及SNMP通信,有的调用内部服务,这些应用都没有配置过任何特定的绑定(bind)或源地址(sourceAddress)参数。
但现在出现了服务绑定到错误网卡、源IP异常的情况。按我的理解,源IP的选择应该是由Linux系统自动处理的,但我不知道该怎么把这个行为恢复正常。
我的服务器有多块网卡,具体现象如下:
- 我的部分应用脚本需要向目标地址
10.8.7.10发送数据包,对应的正确网卡是ens4 - 执行
ip route get 10.8.7.10命令,返回的结果是符合预期的:10.8.7.10 dev ens4 src 10.8.7.4 uid 1006 - 但用
tshark抓包后发现,发往10.8.7.10的数据包,源IP居然是100.0.10.11——这个IP属于另一块完全无关的网卡 - 同时,目标端
10.8.7.10尝试向10.8.7.4回包时,会返回「Destination unreachable (Port unreachable)」错误,就好像我的服务根本没有在监听这个地址一样
我已经尝试过手动添加路由规则:
ip route add 10.8.7.10 dev ens4 src 10.8.7.4
但执行后问题完全没有改善。
有没有大佬能指点一下,我该从哪些方面排查这个问题?又该怎么修复它呢?
备注:内容来源于stack exchange,提问作者Henrik
相关产品推荐
相关产品推荐

