route add中的metric代表什么?路由跃点数Metric设置与优先级调整

夏强君_9445

夏强君_9445

2026-06-17

647人浏览

原创

linux中route add命令添加的路由是否生效取决于metric值,该值是内核对同目标同协议路由排序的唯一优先级标尺,数值越小越优先;必须显式指定metric以避免冲突,且仅0–9999为安全范围。

route add中的metric代表什么?路由跃点数metric设置与优先级调整

当你在Linux中执行route add命令时,如果发现两条默认路由同时存在却只有一条生效,或者新增的静态路由始终不被选中,问题大概率出在metric参数没设对——它不是跳数,而是内核做路由决策时唯一认的“优先级标尺”。

metric的本质:不是跳数,是本地路由排序标尺

Linux内核根本不解析ICMP跳数或OSPF cost,【metric是一个纯本地32位无符号整数,仅用于同目标、同协议来源的多条路由之间排序】。比如你同时有两条去0.0.0.0/0的路由,一条来自DHCP(proto dhcp),一条手动添加(proto static),内核先按protocol分组,再在static组里比metric谁更小——小者胜出,其余直接忽略。

metric为0是合法最小值,负数会报错;超过65535虽不报错,但部分老内核可能截断处理,建议控制在0–9999区间。

临时调整metric:用route命令增删改

方法一:添加新路由并指定metric

sudo route add -net 10.10.0.0 netmask 255.255.0.0 gw 192.168.1.254 metric 30

这一步操作起来很简单,直接把网段、掩码、网关和metric写全就行。注意-net必须配netmask,漏掉会导致目标识别错误。

方法二:替换已有路由的metric

先删后加最稳妥:sudo route del -net 10.10.0.0 netmask 255.255.0.0 gw 192.168.1.254 → sudo route add -net 10.10.0.0 netmask 255.255.0.0 gw 192.168.1.254 metric 15

【不能直接用route add覆盖同目标同网关的老路由——它会报“File exists”错误】,必须显式删除再重建。

Skill Weave Chains — 技能链路由引擎
Skill Weave Chains — 技能链路由引擎

开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。

下载

方法三:批量查看与验证

route -n | grep "^0.0.0.0" 查所有默认路由 → 对比末尾metric列 → 再用ip route get 8.8.8.8确认实际走哪条。别信route -n第一行,那是按插入顺序排的,不是生效顺序。

永久生效:写入网卡配置文件

第一步:打开对应网卡配置文件,如CentOS/RHEL系通常是/etc/sysconfig/network-scripts/ifcfg-eth0

第二步:在文件末尾追加一行:IPV4_ROUTE_METRIC=20

第三步:重启网络服务:systemctl restart network

注意:该参数仅对通过该网卡自动获取或配置的默认路由生效,手动用route或ip route添加的临时路由不受影响。若系统使用NetworkManager,需改用nmcli修改connection的ipv4.route-metric属性。

对比ip route方式设置metric

ip route add 10.10.0.0/16 via 192.168.1.254 metric 30

这条命令效果等价于route add,但语法更简洁,且支持IPv6(加-nexthop选项)。不过ip route不支持netmask参数,必须用CIDR格式写子网,比如255.255.0.0要写成/16。

想查当前真正生效的默认路由?只用这一条:ip route show default——它返回的才是内核此刻真正在用的那条,末尾metric值就是最终拍板的依据。

相关专题

更多
Playwright 测试失败怎么办
Playwright 测试失败怎么办

Playwright测试失败专题汇集超时、定位器匹配、浏览器提前关闭、依赖与插件配置、文件上传、SSL及Docker启动等故障文章,并介绍通过截图、报告和Trace定位错误。

2026.10.21

0

15

Playwright 页面操作指南
Playwright 页面操作指南

Playwright页面操作专题汇集元素定位、点击与输入、等待响应、多页面切换、Iframe、事件监听及文件处理的已审核文章,便于按操作场景查阅示例与常见问题。

2026.10.21

0

16

Playwright 入门教程
Playwright 入门教程

Playwright入门专题汇集测试框架安装、VS Code配置、录制脚本、编写首个用例、运行调试及查看报告的已审核文章,帮助初学者搭建端到端测试流程。

2026.10.21

0

16

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

2026.10.16

100

10

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

2026.10.16

80

10

OpenJDK怎么部署Java应用
OpenJDK怎么部署Java应用

Java项目开发完成后,怎样部署到目标环境并正常运行?本专题介绍OpenJDK应用部署流程,涵盖运行环境准备、版本兼容检查、应用打包、启动参数配置和日志查看,帮助你理清部署前后的操作顺序,减少环境差异造成的运行问题。

2026.10.16

40

10

Revel框架模板渲染与表单验证
Revel框架模板渲染与表单验证

本专题围绕Revel框架视图层开发,介绍模板语法、变量输出、布局复用、表单提交、参数绑定与验证规则,帮助开发者完成安全规范的页面交互。

2026.10.16

40

15

Revel框架MVC路由与控制器
Revel框架MVC路由与控制器

本专题聚焦Revel框架MVC核心机制,讲解路由定义、控制器Action、参数绑定、请求响应和反向路由,并结合常见场景梳理接口请求处理流程。

2026.10.16

20

15

Revel框架入门与安装配置
Revel框架入门与安装配置

本专题从Revel框架环境搭建讲起,系统介绍命令行工具安装、项目创建、目录结构、配置文件及热代码重载,帮助开发者快速完成首个Go Web应用。

2026.10.16

40

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Revel 官方开发手册
Revel 官方开发手册

共0课时 | 0人学习

Buffalo框架路由开发手册
Buffalo框架路由开发手册

共0课时 | 0人学习

Buffalo框架官方文档
Buffalo框架官方文档

共0课时 | 0人学习