跳转到内容
搜索 Rocky Linux 文档

    浏览当前文档目录

    Rocky 10:改了 nmcli 配置为什么没生效——modify 与 reapply 的分界

    Rocky Linux 10.2 Server 组虚拟机,NetworkManager 1.56.0-1.el10。

    实验在 dummy 接口上完成——不需要真实网卡,也不会影响 SSH 通道。截图:public/evidence/nmcli/rocky-reapply.png。

    before: 10.97.0.1/24
    $ nmcli connection modify lab-c ipv4.addresses 10.97.0.9/24
    after modify (not applied yet): 10.97.0.1/24
    $ nmcli device reapply dummy0
    after reapply: 10.97.0.9/24

    三步的输出就是全部结论:

    • nmcli connection modify 只写进 profile 存储;
    • 运行中的接口不会变;
    • nmcli device reapply 把新配置推下去,且不断链路(比 connection up 温和)。
    操作会断链路吗适用
    nmcli connection modify不会,但也不生效先改配置
    nmcli device reapply <dev>不断(能改的属性范围内)改地址/DNS/路由后立刻生效
    nmcli connection up <name>会重建连接reapply 不支持该属性时

    有些属性(如 ipv4.method 从 manual 切 dhcp)reapply 无法处理,会提示需要重新激活。

    $ 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-c
    192.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-c
    192.168.2.241

    直接 nmcli connection modify lab-c ipv4.dns 1.1.1.1 会替换整个列表,多值属性上这是最常见的误操作。

    $ nmcli connection modify lab-c connection.autoconnect-priority 50
    $ nmcli -f NAME,AUTOCONNECT,AUTOCONNECT-PRIORITY connection show | grep lab-c
    lab-c yes 50

    同一设备上有多个 autoconnect yes 的 profile 时,数值大的优先(默认 0,负数表示更低)。这个属性只影响「设备可用时自动选谁」,不影响手动 up。

    • 改 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 的差别看清楚”
    Terminal window
    sudo nmcli connection add type dummy ifname dummy8 con-name drill ipv4.method manual ipv4.addresses 10.95.0.1/24
    sudo nmcli connection up drill
    sudo nmcli connection modify drill ipv4.addresses 10.95.0.2/24
    ip -4 -br addr show dummy8
    sudo nmcli device reapply dummy8
    ip -4 -br addr show dummy8
    sudo nmcli connection delete drill

    检查:

    1. modify 后仍是 10.95.0.1;
    2. reapply 后变成 10.95.0.2;
    3. nmcli -g ipv4.addresses 与 ip addr 一致;
    4. 删除 profile 后设备消失。

    常见问题

    reapply 会不会断 TCP 连接?

    在它能处理的属性范围内通常不断;改地址会让既有连接失效,改 DNS/路由一般不影响已建立连接。

    改了配置但 reboot 后又变回去?

    检查是否有更高优先级的 profile 抢了设备,或配置写在了 /etc/resolv.conf 这类被覆盖的位置。

    nmcli 与 ifcfg 文件能混用吗?

    EL9 起默认 keyfile 后端,/etc/sysconfig/network-scripts/ 的 ifcfg 不再生效,别混着改。