多网卡路由验证不能只看能否上网,需确认流量是否走预期网卡和网关:先用ip route show(linux)或route print -4(windows)查默认路由与直连网段;再分层ping同网段设备、网关、外网ip并结合ip route get或tcpdump验证实际路径;最后用ping -i(linux)或ping -s(windows)强制指定出口对比测试,辅以跃点值或策略路由检查确保选路符合策略。
多网卡环境下路由选择是否正确,不能只看“能上网”,而要看流量是否走预期的网卡和网关。关键在于验证系统是否按你设定的策略转发数据包,而不是依赖默认行为或运气。
确认当前生效的默认路由和各网卡路由条目
先看清系统实际在用哪条路:
- 运行 ip route show(Linux)或 route print -4(Windows),重点找带 default via 或 0.0.0.0 的行,它就是当前外网出口
- 检查每张网卡是否生成了对应直连网段路由(如 192.168.1.0/24 dev eno1 proto kernel),确保没有重复、冲突或缺失
- 若存在双网卡同网段(如 eno1 和 eno2 都配了 192.168.1.0/24),系统可能随机选一个发包,导致部分连接失败——这是典型隐患
按目标地址逐级测试,验证路径是否符合预期
别只 ping 外网,要分层验证不同目标走的是哪张卡:
将提醒同步至 Windows/Outlook 日历。用户提及「提醒我」「设置提醒」「加到日历」「同步到日历」「日程」「calendar」「日历」时触发。支持Microsoft Graph API 设备代码流认证,无需 Web 服务器,直接写入用户 Outlook 日历。
- ping 同一网段内设备(如 192.168.1.5)→ 应走直连路由,查 ip neigh 看 ARP 是否解析到该网卡的 MAC
- ping 默认网关(如 192.168.1.1)→ 必须通过对应网卡发出,用 tcpdump -i eno1 icmp 抓包确认
- ping 外网 IP(如 8.8.8.8)→ 运行 ip route get 8.8.8.8,输出会明确显示“via 192.168.1.1 dev eno1”,这就是真实选路结果
手动指定出口网卡做定向验证
绕过路由表自动决策,强制走某张卡,快速验证配置逻辑:
- Linux 下:用 ping -I eno1 8.8.8.8 指定从 eno1 发包;再换 -I eno2 对比,看哪张卡真正通外网
- Windows 下:用 ping -S 192.168.1.10 8.8.8.8(-S 指定源 IP,间接绑定网卡)
- 如果某张卡指定后通、不指定就不通,说明默认路由没指向它,或它的跃点值(Metric)被设得太高
检查度量值与策略路由(进阶但实用)
当默认路由不够用时,需主动干预选路逻辑:
- Linux:查看 ip rule show 和 ip route show table xxx,确认是否有基于源地址的策略路由(如 from 10.10.0.0/16 lookup internal)
- Windows:用 route print -4 | findstr "Metric" 查各默认路由的跃点数,数值小的优先;可手动用 route change 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 10 调整
- 若某网卡专用于内网(如 10.0.0.0/8),应删掉它的默认路由,避免干扰外网流量










