
Linux多网卡主机路由检查方法多网卡主机在 Linux 环境中并不少见。它们可能用于业务隔离、管理面分离、双线接入、内外网分流或高可用部署。但多网卡也意味着更复杂的路由行为。很多“这台机器能 ping 通但服务异常”“流量出去后回不来”的问题最终都与路由选择有关。中级阶段必须具备检查多网卡路由的基本能力。一、先看主机到底有哪些网卡排查前先建立全貌明确主机上有哪些接口、各自地址是什么、状态是否正常。ip addr如果网卡状态本身就不对或者地址配置明显异常后续看路由没有意义。多网卡问题首先仍然是接口问题。二、查看路由表整体结构多网卡主机最关键的是知道默认路由和各网段路由如何组织。ip route重点看两类信息默认路由指向哪里不同网段是否有明确出口。如果只有一个默认路由而业务又依赖多个网络平面就要特别小心返回路径是否一致。三、用路由查询模拟实际出站路径与其光看表不如直接让系统告诉你访问某个目标时会走哪条路。ip route get 8.8.8.8或者查询内网目标ip route get 10.0.0.5这一步非常实用因为它能直接显示源地址、出口接口和下一跳帮助你快速判断流量是否会从预期网卡出去。四、注意源地址选择问题多网卡场景下即使出口接口正确源地址选择不对也会引发回包异常。对端收到请求后如果回到另一个地址连接就可能表现得很怪异。中级排查时必须同时关注“从哪张卡出去”和“带着哪个源地址出去”。五、连通性测试要分接口看如果怀疑某块网卡所在网络有问题可以显式指定接口做连通性测试。ping -I eth1 10.0.0.1这比普通 ping 更有针对性因为它能帮助你判断某条特定链路是否真的可达而不是被默认路由悄悄绕到别的出口。六、服务监听地址也要匹配网络设计多网卡主机上的服务常常只希望暴露在某张网卡上。如果监听地址和路由设计不一致可能导致本应只走内网的服务被外网访问或本应对外开放的服务只在本地网络可见。ss -lntp检查监听地址时要结合网卡角色一起看而不是只看端口有没有起来。七、防火墙与安全策略可能按接口生效在多网卡环境中防火墙规则不一定是全局统一的可能会按接口、区域或来源地址生效。因此即使路由正确、服务监听正常流量仍可能在某个接口上被拦截。firewall-cmd --list-alliptables -L -n排查时要把“哪个接口进来、哪个接口出去”作为完整链路考虑。八、抓包是最终事实依据如果看配置还是不确定可以在对应接口上抓包验证流量路径。tcpdump -i eth1 host 10.0.0.5抓包的价值在于它能直接告诉你请求是否从这张卡发出、回包是否回来、有没有被发错出口。对多网卡问题来说这是非常强的证据。九、策略路由场景需要额外意识有些环境会使用更复杂的策略路由不同源地址或不同流量走不同路由表。即使 ip route 看起来很简单真实行为也可能更复杂。中级阶段至少要意识到默认路由表不一定代表全部真相尤其在高阶网络场景里更是如此。十、从“有几张网卡”走向“流量如何决策”真正成熟的多网卡排查不是记住每块网卡名称而是理解 Linux 如何根据目标地址、源地址和路由规则做流量决策。一旦这个模型建立起来多网卡相关问题就不再神秘。Linux 多网卡主机路由检查的核心在于把接口、地址、路由、监听和防火墙作为同一条流量路径来分析。只要路径思维清晰多网卡环境就能被稳定掌控。