如何阻止NetworkManager在/run/NetworkManager/system-connections下生成连接文件?
问题:阻止NetworkManager在/run下生成额外连接配置文件
我在RHEL9服务器上使用NetworkManager 1.42配置网络,按照官方文档将连接配置文件写入/etc/NetworkManager/system-connections目录。因为操作是在chroot环境中(操作系统升级必需,无法规避),写入文件后无法执行nmcli connection reload,原本以为重启机器就能让NetworkManager重新加载配置。
我的/etc/NetworkManager/system-connections/ethMgmt文件内容如下:
[connection] id=ethMgmt type=ethernet interface-name=ethMgmt autoconnect=true [ethernet] mac-address=00:0d:3a:aa:97:31 [ipv4] method=manual address1=10.60.4.101/27,10.60.4.97 [ipv6] method=disabled
但重启后发现,虽然自定义配置已被读取,但NetworkManager在/run/NetworkManager/system-connections下生成了额外的连接文件:
$ nmcli -f TYPE,FILENAME,NAME connection TYPE FILENAME NAME loopback /run/NetworkManager/system-connections/lo.nmconnection lo // 已连接(绿色) ethernet /run/NetworkManager/system-connections/ethMgmt.nmconnection ethMgmt // 已连接(绿色) ethernet /etc/NetworkManager/system-connections/ethMgmt.nmconnection ethMgmt // 未连接(灰色)
我已经安装了NetworkManager-config-server RPM包,NetworkManager配置为no-auto-default=*。删除/run/NetworkManager/system-connections下的文件并重启NetworkManager后,这些文件会重新生成,且生成的配置和自定义配置有明显差异:
[connection] id=ethMgmt uuid=12899f61-26c1-4b62-826e-5ec70a545802 type=ethernet autoconnect=false interface-name=ethMgmt timestamp=1701105499 [ethernet] mac-address=00:0D:3A:AA:97:31 [ipv4] address1=10.60.4.101/27,10.60.4.97 method=manual route1=168.63.129.16/32,10.60.4.97,0 route2=169.254.169.254/32,10.60.4.97,0 [ipv6] addr-gen-mode=default method=link-local [proxy] [.nmmeta] nm-generated=true volatile=true external=true
执行以下命令可以临时解决问题:
rm -rf /run/NetworkManager/system-connections/* nmcli connection reload
执行后的结果:
$ nmcli -f TYPE,FILENAME,NAME connection TYPE FILENAME NAME loopback /run/NetworkManager/system-connections/lo.nmconnection lo -- 已连接(绿色) ethernet /etc/NetworkManager/system-connections/ethMgmt.nmconnection ethMgmt -- 已连接(绿色)
但这个方案不够优雅,尤其是需要在重启后手动执行命令。请问有没有方法可以阻止NetworkManager生成这些/run下的文件,让它启动时直接读取/etc/NetworkManager/system-connections/ethMgmt.nmconnection的配置?
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

