linux路由优先级由metric值决定,数值越小越优先;它用于同目标同协议多条路由间的选路,ip route show可查看末尾metric值,无显示则默认为0。

在 Linux 中,路由表的“优先级”实际由 Metric 值体现——数值越小,优先级越高。它用于同网段多条可达路由之间的选路决策(比如同时存在静态路由和动态路由时)。
用 ip route 查看 Metric 值
ip route 是现代推荐命令,Metric 会直接显示在路由条目末尾(若存在):
- 运行
ip route show,每行末尾带metric N的即为该路由的 Metric 值 - 例如:
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 metric 100表示该直连路由 Metric 为 100 - 没有显式写出
metric的路由,默认 Metric 为 0(如内核自动生成的直连路由、部分静态路由)
用 route 命令辅助验证(已废弃但仍可用)
route -n 输出中,Metric 列对应的就是优先级值:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 列名通常为
Metric,位置在Flags和Ref之间 - 注意:该命令不显示默认 Metric=0 的路由的数值,需结合
ip route确认 - 输出示例:
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1,其中第 6 列0即 Metric
Metric 的常见来源与设置方式
Metric 不是固定属性,它可由不同机制设定:
- 内核自动分配:直连路由默认 Metric 0;DHCP 获取的默认网关常设为 100 或 200
- 手动添加路由时指定:
ip route add 172.16.0.0/16 via 192.168.1.1 metric 50 - NetworkManager 或 systemd-networkd 配置中可通过
metric=参数控制(如IPRouteMetric=20) - 多网卡默认路由冲突时,靠 Metric 决定主出口:两个默认路由(0.0.0.0/0)中 Metric 更小者胜出
查看完整路由策略与多表 Metric 影响
Linux 支持多路由表(如 main、default、local),Metric 仅在同表内生效:
- 用
ip rule show查看规则如何选择路由表 - 用
ip route show table all查看所有表的路由及各自 Metric - 不同表里的相同目标网络可有不同 Metric,但跨表不比较——最终走哪条,取决于规则匹配结果










