路由优先级由metric值决定,值越小优先级越高。系统优先选择metric低的路由,适用于多网关、多网卡场景,如设置主备线路。可通过ip route命令临时设置metric,或在配置文件中永久设置,如Netplan、ifcfg-eth0等。DHCP会自动分配metric,通常有线网络低于无线。需避免相同metric导致不必要的负载均衡。

在Linux中,路由优先级通过metric值来控制。metric值越小,优先级越高。系统根据这个值决定数据包走哪条路由,尤其是在存在多条可达路径的情况下。正确设置metric可以优化网络路径选择,比如在多网卡或多网关环境中指定主备线路。
metric是一个整数,用于衡量路由的“成本”。内核在构建路由表时,会优先选择metric值较小的路由条目。常见场景包括:
使用ip route命令可以临时添加或修改路由的metric值。
例如,添加一个默认路由并指定metric:
ip route add default via 192.168.1.1 dev eth0 metric 100修改已有路由的metric:
ip route change default via 192.168.1.1 dev eth0 metric 50查看当前路由表及metric:
ip route show输出示例:
default via 192.168.1.1 dev eth0 metric 50这里系统会优先使用eth0的网关。
不同发行版配置方式略有不同,常见方法如下:
Ubuntu/Debian(使用Netplan)编辑/etc/netplan/*.yaml文件,在gateway4或routes中指定metric:
network:在网卡配置文件中设置,如/etc/sysconfig/network-scripts/ifcfg-eth0:
GATEWAY=192.168.1.1或在/etc/sysconfig/network-scripts/route-eth0中指定:
192.168.2.0/24 via 192.168.1.1 dev eth0 metric 200 使用systemd-networkd在.network文件中配置:
[Route]如果使用DHCP获取IP,系统通常会自动为接口分配metric值。一般规则是:
可通过配置阻止DHCP设置metric,或手动覆盖:
dhclient -metric 50 eth0基本上就这些。关键是理解metric越小优先级越高,并根据使用环境在临时命令或配置文件中合理设置。注意避免多条默认路由metric相同导致负载均衡,若不需要这种行为应明确区分metric值。
以上就是如何在Linux中路由优先级 Linux metric值设置的详细内容,更多请关注php中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号