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

使用nmcli修改子网掩码后配置不生效的问题及正确等价操作咨询

使用nmcli修改子网掩码后配置不生效的问题及正确等价操作咨询

我懂你的困扰——直接用ip命令修改接口地址和子网掩码能立刻生效,但换成nmcli操作后,明明改了连接配置、重启了网络服务,旧的子网掩码还是挂在接口上。这是因为你没搞清楚ip命令和nmcli的本质区别:

  • ip addr del/add是直接操作当前活跃的网络接口,属于临时生效的即时修改;
  • 而nmcli con modify只是修改了系统中存储的连接配置文件,如果不主动激活这个连接,新配置不会自动应用到当前运行的会话里,单纯重启networking服务往往也不会触发连接的重新加载。

给你一套和ip命令等价的、能立刻生效且持久化的nmcli操作步骤:

  1. 先获取eth4对应的连接UUID(你的原命令没问题,也可以用nmcli con show --active | grep eth4更精准地定位活跃连接):
CONNGUID=$(sudo nmcli con | grep eth4 | grep -Po '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}')
  1. 修改该连接的IPv4地址(包含子网掩码):
sudo nmcli con modify $CONNGUID ipv4.addresses 10.0.5.8/24
  1. 最关键的一步:重新激活这个连接,让新配置立刻覆盖当前会话的旧配置:
sudo nmcli con up $CONNGUID

也可以把这三条合并成一条命令,一次性完成:

CONNGUID=$(sudo nmcli con | grep eth4 | grep -Po '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}') && sudo nmcli con modify $CONNGUID ipv4.addresses 10.0.5.8/24 && sudo nmcli con up $CONNGUID

完成后再用ip addr show dev eth4 | grep '10.0.5.8'验证,你会看到旧的/16条目已经消失,新的/24配置生效了。而且这个修改是持久化的——下次系统重启后,新配置依然会自动加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 08:09:37