Skip to content
Search RHEL

This page uses Chinese content. Search opens the Chinese documentation.

    Browse this documentation

    RHEL 10 NetworkManager keyfile:nmcli 落盘格式与 600 权限

    This content is not available in your language yet.

    nmcli 不是把配置藏在二进制里:每个连接最终落在 /etc/NetworkManager/system-connections/*.nmconnection 的 keyfile。理解这份文件,才能做配置审查、批量下发和故障恢复。

    在 PVE 393 rhel9-lab(RHEL 10.2)执行:

    Terminal window
    sudo nmcli con add type dummy ifname dummy0 con-name dummy-keyfile \
    ipv4.method manual ipv4.addresses 10.99.0.1/24
    sudo nmcli con mod dummy-keyfile ipv4.dns 10.99.0.53 connection.autoconnect no
    sudo nmcli con up dummy-keyfile
    sudo cat /etc/NetworkManager/system-connections/dummy-keyfile.nmconnection
    sudo nmcli con delete dummy-keyfile

    E3 记录:plans/content-expansion/evidence/rhel/rhel-nm-keyfile/run.json(6 步,含 keyfile 内容与权限)。

    • nmcli con add/mod 改的是内存 + 落盘;
    • 落盘文件是 INI 风格 keyfile,不是 ifcfg;
    • 文件名 <connection-id>.nmconnection,权限必须 600;
    • 连接被删除时文件也删除,设备随之消失(dummy 这种纯软件设备)。
    [connection]
    id=dummy-keyfile
    uuid=e79a0ccd-a262-4806-a024-34dda9b42fef
    type=dummy
    autoconnect=false
    interface-name=dummy0
    timestamp=1793864733
    [dummy]
    [ipv4]
    address1=10.99.0.1/24
    dns=10.99.0.53;
    method=manual
    [ipv6]
    addr-gen-mode=default
    method=disabled
    [proxy]
    nmcli 属性keyfile 键
    ipv4.addresses 10.99.0.1/24[ipv4] address1=10.99.0.1/24
    ipv4.dns 10.99.0.53[ipv4] dns=10.99.0.53;(注意分号)
    ipv4.method manual[ipv4] method=manual
    connection.autoconnect no[connection] autoconnect=false
    connection.interface-name[connection] interface-name=dummy0

    多地址会写成 address1=、address2=;多 DNS 用分号分隔并以分号结尾。

    $ sudo stat -c '%a %U:%G %n' /etc/NetworkManager/system-connections/dummy-keyfile.nmconnection
    600 root:root /etc/NetworkManager/system-connections/dummy-keyfile.nmconnection

    keyfile 可能含 Wi-Fi 密码、802.1X 凭据,NetworkManager 要求 600;权限放宽会被拒绝加载。

    $ sudo nmcli con up dummy-keyfile
    $ ip -br a show dummy0
    dummy0 UP 10.99.0.1/24 ...
    $ sudo nmcli con delete dummy-keyfile
    $ ip link show dummy0
    Device "dummy0" does not exist.

    delete 同时删连接配置与设备;真实网卡不会因为删连接而消失,只是回到未管理/其他连接。

    直接改 .nmconnection 后,NetworkManager 不会自动重读:

    Terminal window
    sudo vi /etc/NetworkManager/system-connections/dummy-keyfile.nmconnection
    sudo nmcli con reload
    sudo nmcli con up dummy-keyfile

    更稳的做法是用 nmcli con mod,避免手写错 address1=/分号。

    • 连接 id 与文件名一致;
    • 权限 600、属主 root;
    • [ipv4] method 与地址匹配;
    • DNS 以分号结尾;
    • 手工改后 nmcli con reload;
    • 删除连接前确认不是物理网卡的主连接。
    • 未测试 Wi-Fi/802.1X keyfile;
    • 未测试 nmcli connection migrate 的实际转换(另页);
    • 未测试 keyfile 与 ifcfg 同名冲突;
    • 未测试 NetworkManager 的 conf.d 插件。