nmcli没有make-rc-style命令;升级后NetworkManager通过ifcfg-rh插件自动将ifcfg文件迁移为system-connections中的连接配置,可手动执行nmcli connection reload触发重载。

在基于传统 ifcfg- 文件(如 /etc/sysconfig/network-scripts/ifcfg-eth0)的系统(如 RHEL/CentOS 7 或早期版本)升级到使用 NetworkManager 的新环境(如 RHEL 8+、CentOS Stream、Fedora)后,nmcli make-rc-style 并不是一个真实存在的 nmcli 子命令 —— 它并不存在于任何官方 NetworkManager 版本中。
nmcli 没有 make-rc-style 命令
NetworkManager 的 nmcli 工具不提供名为 make-rc-style 的内置命令。这是常见误解,可能源于对旧工具(如 nm-connection-editor 图形界面行为)、第三方脚本或文档笔误的混淆。NetworkManager 本身不主动“批量转换” ifcfg 文件为 connection profile,但具备兼容读取和迁移能力。
系统升级时的自动迁移机制
RHEL/CentOS/Fedora 升级过程(如从 7 升级到 8)会由 leapp 或 dnf system-upgrade 触发 NetworkManager 的兼容性处理:
- NetworkManager 默认启用
ifcfg-rh插件(通过/etc/NetworkManager/NetworkManager.conf中的plugins=ifcfg-rh,keyfile) - 升级后首次启动 NetworkManager 时,会扫描
/etc/sysconfig/network-scripts/下所有有效ifcfg-文件,并为其自动创建对应的 connection profile(保存在/etc/NetworkManager/system-connections/) - 这些 profile 名称通常与 ifcfg 文件名一致(如
ifcfg-ens3→ connection 名为ens3),且标记为autoconnect=yes - 原 ifcfg 文件仍保留,但 NetworkManager 启动后将优先以 profile 为准;修改配置应通过
nmcli或nmtui,而非直接编辑 ifcfg
手动触发或验证迁移状态
若升级后未自动生效,可手动检查和补救:
- 确认 ifcfg-rh 插件已启用:
grep -i plugins /etc/NetworkManager/NetworkManager.conf应含ifcfg-rh - 重启 NetworkManager:
systemctl restart NetworkManager - 列出所有连接:
nmcli connection show,观察是否出现对应网卡名称的 connection - 查看某连接是否源自 ifcfg:
nmcli connection show "ens3" | grep -i "filename"(若显示filename: /etc/sysconfig/network-scripts/ifcfg-ens3,说明已关联) - 如需强制重载 ifcfg:
nmcli connection reload(该命令会重新扫描 ifcfg 目录并同步变更)
后续管理建议
完成迁移后,应逐步过渡到纯 NetworkManager 管理模式:
- 避免直接编辑
ifcfg-文件,改用nmcli connection modify修改参数(如 IP、DNS、MTU) - 删除旧 ifcfg 文件前,先用
nmcli connection delete "connection-name"移除对应 profile,再清理文件 - 如需导出当前配置为 ifcfg 格式(仅用于调试或回滚参考),可用:
nmcli connection export "connection-name" > /tmp/ifcfg-export(注意:这不是标准 ifcfg,仅作快照) - 生产环境建议统一使用
nmcli或nm-settingsAPI 管理,确保配置持久化与一致性

















