游乐游手机版
首页/系统平台/文章详情

Linux系统默认网关优先级设置方法

时间:2026-06-19 07:24
Linux默认网关优先级由metric值决定,数值越小优先级越高。通过`iprouteshowdefault`查看当前生效路由,临时用`iprouteadd change`修改metric,永久配置需按发行版修改Netplan、ifcfg或nmcli。多条default路由仅metric最小的一条生效,需规划主备路由实现冗余。

简单来说,Linux 选择默认网关的核心机制完全取决于 metric(路由度量)值:该值越小,优先级就越高。需要明确的是,系统永远不会同时使用两条 default 路由,内核只会采用 metric 数值最小的那一条。如果多条默认路由的 metric 值相同,则路由行为将变得不可预测——这并非简单的“谁先配置谁优先”,而是内核严格按照数值大小强制选择的结果。

Linux怎么配置系统的默认网关优先级

如何确认当前生效的默认网关及其 metric 值

这里有一个常见误区:不要仅仅查看 ip route 输出的第一行就认为万事大吉,那一行可能只是众多候选路由之一。实际报文走哪条路径,最终取决于内核实际选中的那一条。

  • ip route show default —— 这是最可靠的命令,它只显示当前被内核选中的那条 default 路由。
  • ip route get 8.8.8.8 —— 模拟一次真实流量,输出结果会明确告知 dev(出口网卡)和 via(下一跳网关),这直接反映了实际的数据流走向。
  • ip route | grep default —— 该命令会筛选出所有带 default 的条目,重点查看每条记录末尾的 metric 值,从而全面掌握优先级排序。

需要特别留意:许多由 proto dhcp 标记的路由,通常是 NetworkManager 等工具自动添加的,它们的 metric 值可能被覆盖。而手动使用 ip route add default 添加的路由,若不指定 metric,默认值为 0,这很容易意外地抢占主路由的位置。

临时调整 metric:适用于调试或应急切换

如果只是临时调试或进行故障切换测试,通过命令行操作可以即时生效,但重启后配置会失效。

  • 先删除当前默认路由:ip route del default(不带 via 也能删除,操作需谨慎)。
  • 然后添加新路由并指定 metricip route add default via 192.168.5.1 dev wlan0 metric 50
  • 如果只想修改已有路由的 metric 值:ip route change default via 192.168.1.1 dev eth0 metric 20

注意:metric 必须是正整数或 0,负值无效。此外,ip route replace 虽然也可以使用,但其本质是先删除再添加,执行过程不如显式地 del + add 那样清晰可控。

永久配置 metric:根据发行版选择合适的方法

上述命令重启后会丢失,要实现持久化必须写入配置文件。但不同 Linux 发行版的方法不同,需要针对性地处理。

  • Ubuntu/Debian(Netplan):编辑 /etc/netplan/*.yaml 文件,在对应网口下使用 routes 块定义。例如:
    routes:
      - to: default
        via: 192.168.1.1
        metric: 100
    注意缩进必须使用空格,不能用 tab。修改后运行 sudo netplan apply 生效。
  • RHEL/CentOS(ifcfg-):编辑 /etc/sysconfig/network-scripts/ifcfg-eth0,手动添加 GATEWAY=192.168.1.1METRIC=100。关键点在于:如果该接口被 NetworkManager 接管,需要额外加上 NM_CONTROLLED=no 才能让自定义配置生效。
  • NetworkManager 管理的桌面环境:使用 nmcli 命令行工具更便捷。例如:nmcli connection modify "Wired connection 1" ipv4.route-metric 100,然后执行 nmcli connection down && up 重启连接。

这里有一个重要提醒:如果有多个网卡都启用了 DHCP,务必禁用非主网卡上自动生成的默认路由(例如在 Netplan 中设置 use-routes: false),否则这些自动产生的路由会与手动配置的 metric 值发生冲突,导致网络行为变得混乱。

为什么添加多条 default 路由却只有一条生效

内核的规则非常明确:同一时刻只使用一条 default 路由。选择规则就是寻找 metric 最小的那一条。如果两条路由的 metric 都是 0,后添加的那条可能会被直接忽略,甚至可能触发不可预测的行为(具体取决于内核版本和编译选项)。

因此,不要指望“添加多条 default 就能实现自动故障转移”。真正实现冗余,需要配置一主一备的方案:例如一条主路由 metric 100,一条备份路由 metric 200。然后结合脚本来监听链路状态,当探测到主链路可用时,通过 ip route change 动态调整 metric 值来实现切换。如果需要更精细的控制,还可以使用 ip rule 策略路由,配合自定义路由表来处理。

来源:https://www.php.cn/faq/2665325.html
上一篇银河麒麟网络连接显示问号解决办法详细步骤 下一篇Mac自带输入法常用短语设置方法
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
旧显卡驱动漏洞多年未修:整机厂认证机制是主因
系统平台 · 2026-07-18

旧显卡驱动漏洞多年未修:整机厂认证机制是主因

旧显卡驱动漏洞多年未修的根本原因在于整机厂认证机制存在断层。漏洞虽已修复,但OEM仅对特定驱动认证一两年,之后不再维护;通用驱动被设为低优先级,显卡厂商驱动也被降权,导致设备长期停留在停售时的旧版本。

BIOS设置各参数中英文对照表
系统平台 · 2026-07-18

BIOS设置各参数中英文对照表

先说一个已经过气的选项:Above 1MB Memory Test。它控制着开机自检时是否要检测1MB以上的内存。不过放到现在,这个选项已经彻底淘汰了——当年内存价格高昂,容量普遍较小,自检速度飞快。后来内存价格大幅下降,容量激增,动辄数GB,开机自检反而成了耗时环节。未来即便只做一次内存检测,估计

BIOS自动开机设置及自动登录实现方法
系统平台 · 2026-07-18

BIOS自动开机设置及自动登录实现方法

许多用户都希望自己的电脑能实现全自动化——定时开机、自动登录、按时关机,甚至幻想它能自己煮咖啡。其实,这些功能并不复杂,只需简单调整BIOS和系统设置即可实现。 1、自动定时开机 自动定时开机功能依赖于BIOS设置,前提是主板支持ACPI高级电源管理。目前市面上绝大多数主板都具备此功能。 要设置自动

快速解决BIOS开机英文显示时间过长的方法
系统平台 · 2026-07-18

快速解决BIOS开机英文显示时间过长的方法

遇到这种情况是不是很头疼?即便你进入了BIOS并恢复默认设置,问题依然顽固存在,就像图中显示的那样。 其实原因非常简单:光驱已经损坏。硬件自检无法通过,导致系统在启动时长时间卡住。解决方法也很直接——将光驱拆除,开机速度慢的问题自然就迎刃而解了。

Award BIOS设置图解与功能介绍
系统平台 · 2026-07-18

Award BIOS设置图解与功能介绍

先来简单认识一下什么是Award BIOS?Award是一家公司的名称,BIOS是Basic Input Output System(基本输入输出系统)的缩写。这段程序被存放在一个不需要供电的记忆体(芯片)中,就是我们常说的BIOS。它在电脑中扮演着最基础也最关键的角色——所有硬件与操作系统之间的桥