Rocky 10:改了 nmcli 配置为什么没生效——modify 与 reapply 的分界
Rocky Linux 10.2 Server 组虚拟机,NetworkManager 1.56.0-1.el10。
实验在 dummy 接口上完成——不需要真实网卡,也不会影响 SSH 通道。截图:public/evidence/nmcli/rocky-reapply.png。
modify 不改变运行态
Section titled “modify 不改变运行态”before: 10.97.0.1/24$ nmcli connection modify lab-c ipv4.addresses 10.97.0.9/24after modify (not applied yet): 10.97.0.1/24$ nmcli device reapply dummy0after reapply: 10.97.0.9/24三步的输出就是全部结论:
nmcli connection modify只写进 profile 存储;- 运行中的接口不会变;
nmcli device reapply把新配置推下去,且不断链路(比connection up温和)。
reapply 与 up 的取舍
Section titled “reapply 与 up 的取舍”| 操作 | 会断链路吗 | 适用 |
|---|---|---|
nmcli connection modify | 不会,但也不生效 | 先改配置 |
nmcli device reapply <dev> | 不断(能改的属性范围内) | 改地址/DNS/路由后立刻生效 |
nmcli connection up <name> | 会重建连接 | reapply 不支持该属性时 |
有些属性(如 ipv4.method 从 manual 切 dhcp)reapply 无法处理,会提示需要重新激活。
列表属性要用 + 与 -
Section titled “列表属性要用 + 与 -”$ nmcli connection modify lab-c ipv4.dns ''$ nmcli connection modify lab-c +ipv4.dns 192.168.2.241$ nmcli connection modify lab-c +ipv4.dns 1.1.1.1$ nmcli -g ipv4.dns connection show lab-c192.168.2.241,1.1.1.1$ nmcli connection modify lab-c -ipv4.dns 1.1.1.1$ nmcli -g ipv4.dns connection show lab-c192.168.2.241直接 nmcli connection modify lab-c ipv4.dns 1.1.1.1 会替换整个列表,多值属性上这是最常见的误操作。
autoconnect-priority 怎么读
Section titled “autoconnect-priority 怎么读”$ nmcli connection modify lab-c connection.autoconnect-priority 50$ nmcli -f NAME,AUTOCONNECT,AUTOCONNECT-PRIORITY connection show | grep lab-clab-c yes 50同一设备上有多个 autoconnect yes 的 profile 时,数值大的优先(默认 0,负数表示更低)。这个属性只影响「设备可用时自动选谁」,不影响手动 up。
什么时候必须 up 而不能 reapply
Section titled “什么时候必须 up 而不能 reapply”- 改
ipv4.method(manual ↔ auto); - 改
connection.type或设备绑定; - 改动后 reapply 报
needs reactivation之类提示。
验证方式很简单:reapply 后看 ip addr 与 nmcli -g 是否一致,不一致就 up 一次。
- modify 之后直接测网络:没生效,以为命令失败;
- 用 -g 输出当表格解析:
-g只给值,要表格用-f; - 改 DNS 却替换了整个列表:忘了
+; - 在 SSH 会话里对 ens18 reapply 地址:可能瞬时中断,先确认有带外手段。
练习:把 modify 与 reapply 的差别看清楚
Section titled “练习:把 modify 与 reapply 的差别看清楚”sudo nmcli connection add type dummy ifname dummy8 con-name drill ipv4.method manual ipv4.addresses 10.95.0.1/24sudo nmcli connection up drillsudo nmcli connection modify drill ipv4.addresses 10.95.0.2/24ip -4 -br addr show dummy8sudo nmcli device reapply dummy8ip -4 -br addr show dummy8sudo nmcli connection delete drill检查:
- modify 后仍是 10.95.0.1;
- reapply 后变成 10.95.0.2;
nmcli -g ipv4.addresses与ip addr一致;- 删除 profile 后设备消失。
常见问题
reapply 会不会断 TCP 连接?
在它能处理的属性范围内通常不断;改地址会让既有连接失效,改 DNS/路由一般不影响已建立连接。
改了配置但 reboot 后又变回去?
检查是否有更高优先级的 profile 抢了设备,或配置写在了 /etc/resolv.conf 这类被覆盖的位置。
nmcli 与 ifcfg 文件能混用吗?
EL9 起默认 keyfile 后端,/etc/sysconfig/network-scripts/ 的 ifcfg 不再生效,别混着改。
- profile 管理:/nmcli-profiles/
- 网络排障:/network-troubleshoot/
- 网络基础:/network-basics/