Rocky Linux网络配置变革:从ifcfg到NetworkManager
2026/7/26 12:50:22 网站建设 项目流程

1. 现象解析:消失的network-scripts目录

在Rocky Linux 10.1系统中,许多从RHEL/CentOS 7迁移过来的管理员会惊讶地发现,熟悉的/etc/sysconfig/network-scripts目录不见了。这不是安装错误或系统缺陷,而是Linux网络管理方式演进的结果。传统ifcfg脚本方式已被NetworkManager的keyfile格式替代,新系统的网络配置现在默认存储在/etc/NetworkManager/system-connections目录下。

这个变化源于Red Hat系列发行版从RHEL 8开始的网络管理架构改革。NetworkManager作为默认网络管理工具,其原生配置方式与传统ifcfg脚本有本质区别。keyfile格式采用INI风格的结构化配置,比原来的shell脚本格式更易于程序化处理,也减少了因脚本语法错误导致的网络故障。

重要提示:虽然ifcfg脚本仍能被NetworkManager识别,但官方明确建议新系统采用keyfile格式。混合使用两种配置方式可能导致不可预见的冲突。

2. 新旧网络配置机制对比

2.1 传统ifcfg脚本体系

传统网络配置以/etc/sysconfig/network-scripts/ifcfg- 文件为核心,配合route- 等辅助文件。典型ifcfg文件包含:

DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes

这种方式的局限性日益明显:

  • 缺乏标准化:各发行版的参数命名存在差异
  • 调试困难:依赖shell脚本的执行顺序和错误处理
  • 功能局限:难以支持现代网络特性如SR-IOV、WiFi 6等

2.2 NetworkManager的keyfile格式

新的配置存储在/etc/NetworkManager/system-connections/ .nmconnection,典型内容:

[connection] id=Wired Connection uuid=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 type=ethernet [ipv4] method=auto [ethernet] mac-address=00:11:22:33:44:55

优势包括:

  • 标准化格式:遵循.freedesktop.org规范
  • 原子化操作:配置文件整体生效/回滚
  • 丰富元数据:支持连接优先级、多配置文件等特性

3. 现代网络管理实操指南

3.1 基础网络配置方法

推荐使用nmcli工具进行配置:

# 查看现有连接 nmcli connection show # 创建新连接(DHCP) nmcli connection add con-name "OfficeLAN" ifname eth0 type ethernet # 静态IP配置 nmcli connection add con-name "ServerLAN" ifname eth1 type ethernet \ ip4 192.168.1.100/24 gw4 192.168.1.1

3.2 传统ifcfg迁移方案

如需兼容旧系统,可通过工具转换:

# 将ifcfg转换为keyfile nmcli connection migrate # 反向转换(不推荐) nmcli connection migrate --ifcfg-rh

3.3 高级网络配置示例

配置绑定接口:

nmcli connection add type bond con-name bond0 ifname bond0 \ mode active-backup ipv4.method manual \ ipv4.addresses "10.0.0.2/24" ipv4.gateway "10.0.0.1" nmcli connection add type ethernet slave-type bond \ con-name bond0-port1 ifname eth1 master bond0

4. 常见问题排查

4.1 网络服务无法启动

现象:NetworkManager服务启动失败 解决方案:

# 检查日志 journalctl -u NetworkManager -b # 常见原因:残留的ifcfg文件干扰 ls -l /etc/sysconfig/network-scripts/ rm -f /etc/sysconfig/network-scripts/ifcfg-*

4.2 配置不生效

现象:修改nmconnection文件后网络无变化 处理步骤:

  1. 确认文件权限为600:
    chmod 600 /etc/NetworkManager/system-connections/*.nmconnection
  2. 重新加载配置:
    nmcli connection reload
  3. 手动激活连接:
    nmcli connection up <connection-name>

4.3 传统工具兼容方案

对于必须使用ifcfg脚本的场景:

  1. 安装legacy包:
    dnf install network-scripts
  2. 创建符号链接:
    ln -s /etc/sysconfig/network-scripts /etc/sysconfig/network
  3. 注意:这种方案可能在未来版本中被移除

5. 网络管理最佳实践

  1. 配置版本控制

    cd /etc/NetworkManager/system-connections git init && git add . && git commit -m "Initial network config"
  2. 批量修改技巧

    # 批量修改DNS设置 for f in *.nmconnection; do sed -i '/^dns=/d; /^\[ipv4\]/a dns=8.8.8.8;' $f done
  3. 配置备份恢复

    # 备份 tar czf network-config-$(date +%F).tgz /etc/NetworkManager # 恢复 tar xzf network-config-2023-01-01.tgz -C /
  4. 多环境配置管理: 使用nmcli的--临时配置选项:

    nmcli connection modify <id> +ipv4.addresses "192.168.1.100/24" --temp

网络配置方式的变革反映了Linux系统管理向更现代、更可靠的架构演进。虽然改变初期会带来适应成本,但新的NetworkManager体系在复杂网络环境下的稳定性和功能性优势明显。建议管理员尽快熟悉nmcli等现代工具,逐步淘汰对ifcfg脚本的依赖。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询