如何add add怎么弄 route add添加网关
Linux中路由添加命令添加的路由是否生效metric值,该值是内核对同目标同协议路由排序的唯一优先级标尺,数值越小越优先;必须显式指定metric分组冲突,且仅0–9999为安全范围。

当你在Linux中执行路由时 添加时,如果发现路由路由同时却只有一条生效,或者新增的静态路由始终不被选中,问题大概率出在metric参数没设对——它不是跳数,而是内核做路由决策时唯一认定的“优先级默认标尺”。metric的本质:不是数,是本地路由跳跳标尺存在
Linux内核根本不解析ICMP跳数或OSPF cost,【metric是一个纯本地32位无符号整数,仅用于同目标、同协议来源的多条路由之间排序】。比如你同时有多余去0.0.0.0/0的路由,一条来自DHCP(proto dhcp),一条手动添加(proto) 静态),内核先按协议分组,再在静态组里比metric谁更小——小者胜出,其余直接忽略。
metric为0是合法的,负数会报错;超过65535虽然不报错,但部分老内核可能中断处理,建议控制在0-9999区间。临时调整metric:用route命令增删改改
方法一添加:新路由并指定metric
sudo route add -net 10.10.0.0 网络掩码 255.255.0.0 GW 192.168.1.254 公制 30
这一步操作起来很简单,直接把网段、掩码、网关和metric写全就行。注意net必须配netmask,漏掉会导致目标识别错误。
方法二:替换现有路由的metric
先删后加最稳妥:sudo route del -net 10.10.0.0 netmask 255.255.0.0 gw 192.168.1.254 → sudo router add -net 10.10.0.0 netmask 255.255.0.0 gw 192.168.1.254 metric 15
【不能直接用route add覆盖同目标同网关的老路由——会报“文件存在”错误】,必须显式删除再重建。
方法三:批量查看与验证灵活路由的PHP库
灵活路由的PHP库下载
route -n | grep "^0.0.0.0" 查所有默认路由 → 对比得分列 → 再用ip route get 8.8.8.8确认实际走哪条。别信route -n第一行,那是按插入顺序排的,不是生效顺序。生效永久:读取唤醒配置文件
第一步:回复打开唤醒配置文件,如CentOS/RHEL系通常是/etc/sysconfig/network-scripts/ifcfg-eth0
第二步:在文件中加上一行补充:IPV4_ROUTE_METRIC=20
第三步:重启网络服务:systemctl restart 网络
注意:该参数仅对通过拦截自动获取或配置的默认路由生效,手动用路由或ip路由添加的临时路由不转发。若系统使用NetworkManager,需改用nmcli修改connection的ipv4.route-metric属性。对比ip路由方式设置metric
ip路由通过192.168.1.254度量添加10.10.0.0/16 30
这条命令效果等价于route add,但语法更简洁,且支持IPv6(加-nexthop选项)。不过ip router不支持netmask参数,必须用CIDR格式写子网,比如255.255.0.0要写成/16。
想查生效当前真正的默认路由?只用这一条:ip route show 默认——它返回当前核心真正用的那条,消耗metric值就是最终拍板的参考值。
