RHEL 10 NetworkManager keyfile:nmcli 落盘格式与 600 权限
nmcli 不是把配置藏在二进制里:每个连接最终落在 /etc/NetworkManager/system-connections/*.nmconnection 的 keyfile。理解这份文件,才能做配置审查、批量下发和故障恢复。
在 PVE 393 rhel9-lab(RHEL 10.2)执行:
sudo nmcli con add type dummy ifname dummy0 con-name dummy-keyfile \ ipv4.method manual ipv4.addresses 10.99.0.1/24sudo nmcli con mod dummy-keyfile ipv4.dns 10.99.0.53 connection.autoconnect nosudo nmcli con up dummy-keyfilesudo cat /etc/NetworkManager/system-connections/dummy-keyfile.nmconnectionsudo nmcli con delete dummy-keyfileE3 记录:plans/content-expansion/evidence/rhel/rhel-nm-keyfile/run.json(6 步,含 keyfile 内容与权限)。
先给结论:keyfile 是持久化格式
Section titled “先给结论:keyfile 是持久化格式”nmcli con add/mod改的是内存 + 落盘;- 落盘文件是 INI 风格 keyfile,不是 ifcfg;
- 文件名
<connection-id>.nmconnection,权限必须 600; - 连接被删除时文件也删除,设备随之消失(dummy 这种纯软件设备)。
keyfile 内容
Section titled “keyfile 内容”[connection]id=dummy-keyfileuuid=e79a0ccd-a262-4806-a024-34dda9b42feftype=dummyautoconnect=falseinterface-name=dummy0timestamp=1793864733
[dummy]
[ipv4]address1=10.99.0.1/24dns=10.99.0.53;method=manual
[ipv6]addr-gen-mode=defaultmethod=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 用分号分隔并以分号结尾。
权限 600
Section titled “权限 600”$ sudo stat -c '%a %U:%G %n' /etc/NetworkManager/system-connections/dummy-keyfile.nmconnection600 root:root /etc/NetworkManager/system-connections/dummy-keyfile.nmconnectionkeyfile 可能含 Wi-Fi 密码、802.1X 凭据,NetworkManager 要求 600;权限放宽会被拒绝加载。
up 与 delete
Section titled “up 与 delete”$ sudo nmcli con up dummy-keyfile$ ip -br a show dummy0dummy0 UP 10.99.0.1/24 ...
$ sudo nmcli con delete dummy-keyfile$ ip link show dummy0Device "dummy0" does not exist.delete 同时删连接配置与设备;真实网卡不会因为删连接而消失,只是回到未管理/其他连接。
手工编辑与 reload
Section titled “手工编辑与 reload”直接改 .nmconnection 后,NetworkManager 不会自动重读:
sudo vi /etc/NetworkManager/system-connections/dummy-keyfile.nmconnectionsudo nmcli con reloadsudo nmcli con up dummy-keyfile更稳的做法是用 nmcli con mod,避免手写错 address1=/分号。
- 连接 id 与文件名一致;
- 权限 600、属主 root;
-
[ipv4] method与地址匹配; - DNS 以分号结尾;
- 手工改后
nmcli con reload; - 删除连接前确认不是物理网卡的主连接。
未实测与边界
Section titled “未实测与边界”- 未测试 Wi-Fi/802.1X keyfile;
- 未测试
nmcli connection migrate的实际转换(另页); - 未测试 keyfile 与
ifcfg同名冲突; - 未测试 NetworkManager 的
conf.d插件。
- RHEL NetworkManager 双栈 — 地址/路由
- RHEL 10 网络排障 — 丢包与 offload
- 官方:Configuring and managing networking