Linux断网常因路由表冲突,需先查全路由表、策略规则及各表内容,用ip route get模拟报文确认实际路径,识别重复默认路由、主机路由劫持、策略规则顺序错乱三类问题,再精准删除冗余条目并验证ARP状态。

路由表冲突是Linux断网的常见原因,尤其在多网卡、手动添加静态路由或网络配置反复变更后。排查核心不是“加新路由”,而是先看清当前真实生效路径,再精准清理冗余条目。
确认是否真有冲突:看全路由表和策略规则
只运行 ip route 不够——它只显示主表(table main),而多网卡环境常启用策略路由。必须同步检查:
- 执行
ip rule show,看是否有多个from或to规则,特别是from all lookup main是否排在具体规则前面; - 对每个非默认表(如 table 100、200),运行
ip route show table 100查其内容; - 用
ip route get 8.8.8.8和ip route get 10.20.5.10 from 192.168.1.10 iif enp0s3模拟真实报文,确认实际走哪条路径。
识别三类高频冲突模式
多数断网问题可归为以下一种或多种:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
-
重复默认路由:多个
default via X.X.X.X条目且 metric 相同,内核按字典序选第一条,导致部分流量发错网关; -
主机路由劫持:例如同时存在
192.168.1.0/24 dev eth0和192.168.1.100/32 via 10.0.0.1,后者会强制所有发往该IP的包绕过子网路由; -
策略规则顺序错乱:比如一条通用规则
pref 32766 from all lookup main排在pref 100 from 10.0.2.100 lookup 101前面,结果本该进自定义表的流量被吞进主表。
安全清理与重建:不盲目 flush,只删冗余
route -f 或 ip route flush table main 会清空所有网关入口,可能瞬间断网。更稳妥的做法是:
- 逐条删除冲突路由:
ip route del default via 192.168.1.2 dev eth1(保留你真正要用的那条); - 删除错误策略规则:
ip rule del pref 32766,再按需重建,确保高优先级规则(小 pref 值)在前; - 为每张网卡配独立路由表(如 eth1 → table 101),并绑定源IP:
ip rule add from 10.0.2.100 table 101,避免跨表干扰。
联动验证ARP状态,确认二层可达
即使路由正确,若网关MAC学不到,照样不通。执行:
-
ip neigh show查网关IP对应条目:状态为FAILED或缺失,说明ARP失败; -
tcpdump -i enp0s3 arp抓包,确认是否发出ARP请求、是否有reply返回; - 手动刷新:
ip neigh del 192.168.1.1 dev enp0s3,再 ping 一次触发重学习。


















