You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NetworkManager环境下以太网接口路由Metric自动变更问题求助

NetworkManager环境下以太网接口路由Metric自动变更问题求助

我之前在项目里也碰到过NetworkManager自动篡改以太网路由metric的糟心事,结合你的情况给你几个实用的排查和解决方向:

1. 先确认DHCP是否在“搞破坏”

很多时候是DHCP服务器推送了接口metric,覆盖了你手动设置的值。你可以给以太网连接加上忽略自动metric的配置:
用nmcli命令修改(以eth0的连接为例):

nmcli con mod "Coolon-ETH0-Connection" ipv4.ignore-auto-metric yes
nmcli con mod "Coolon-ETH0-Connection" ipv4.metric 100
# eth1同理
nmcli con mod "Coolon-ETH1-Connection" ipv4.ignore-auto-metric yes
nmcli con mod "Coolon-ETH1-Connection" ipv4.metric 100

修改后重启连接:

nmcli con down "Coolon-ETH0-Connection" && nmcli con up "Coolon-ETH0-Connection"

这样就能强制固定你设置的metric,不让DHCP推送的值覆盖。

2. 检查NetworkManager的全局路由管理策略

看看/etc/NetworkManager/NetworkManager.conf里的[main]段有没有相关配置,如果有rc-manager=auto,可能会导致系统自动调整路由。可以改成:

[main]
rc-manager=file

这个设置会让NetworkManager优先使用手动配置的路由规则,减少自动调整的概率。改完后重启NetworkManager服务:

systemctl restart NetworkManager

3. 排查是否有其他网络服务干扰

比如systemd-networkd或者dhclient这类服务会不会在后台修改路由?先检查这些服务是否在运行:

systemctl status systemd-networkd dhclient

如果发现它们在运行,且不是你需要的,可以停止并禁用:

systemctl stop systemd-networkd dhclient
systemctl disable systemd-networkd dhclient

另外,也可以在/etc/dhcp/dhclient.conf里添加强制覆盖的配置,确保dhclient不会修改metric:

supersede interface-metric 100;

4. 查看NetworkManager日志找根源

如果上面的方法都没用,直接看日志找触发metric变更的原因,实时监控日志:

journalctl -u NetworkManager.service -f

当你看到metric从100变成1002/1003的时候,日志里应该会有对应的条目,比如提到“DHCP provided metric”或者“Auto-adjusting route metric”,根据日志信息再针对性解决。

5. 确认连接的默认路由设置

还要确保以太网连接是被设置为默认路由,检查连接的ipv4.never-default参数:

nmcli con show "Coolon-ETH0-Connection" | grep never-default

如果值是yes,改成no:

nmcli con mod "Coolon-ETH0-Connection" ipv4.never-default no

这样以太网连接才会成为默认路由候选,配合低metric就能优先被使用。

备注:内容来源于stack exchange,提问作者SAP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 10:54:37