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.13.2 传统ifcfg迁移方案
如需兼容旧系统,可通过工具转换:
# 将ifcfg转换为keyfile nmcli connection migrate # 反向转换(不推荐) nmcli connection migrate --ifcfg-rh3.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 bond04. 常见问题排查
4.1 网络服务无法启动
现象:NetworkManager服务启动失败 解决方案:
# 检查日志 journalctl -u NetworkManager -b # 常见原因:残留的ifcfg文件干扰 ls -l /etc/sysconfig/network-scripts/ rm -f /etc/sysconfig/network-scripts/ifcfg-*4.2 配置不生效
现象:修改nmconnection文件后网络无变化 处理步骤:
- 确认文件权限为600:
chmod 600 /etc/NetworkManager/system-connections/*.nmconnection - 重新加载配置:
nmcli connection reload - 手动激活连接:
nmcli connection up <connection-name>
4.3 传统工具兼容方案
对于必须使用ifcfg脚本的场景:
- 安装legacy包:
dnf install network-scripts - 创建符号链接:
ln -s /etc/sysconfig/network-scripts /etc/sysconfig/network - 注意:这种方案可能在未来版本中被移除
5. 网络管理最佳实践
配置版本控制:
cd /etc/NetworkManager/system-connections git init && git add . && git commit -m "Initial network config"批量修改技巧:
# 批量修改DNS设置 for f in *.nmconnection; do sed -i '/^dns=/d; /^\[ipv4\]/a dns=8.8.8.8;' $f done配置备份恢复:
# 备份 tar czf network-config-$(date +%F).tgz /etc/NetworkManager # 恢复 tar xzf network-config-2023-01-01.tgz -C /多环境配置管理: 使用nmcli的--临时配置选项:
nmcli connection modify <id> +ipv4.addresses "192.168.1.100/24" --temp
网络配置方式的变革反映了Linux系统管理向更现代、更可靠的架构演进。虽然改变初期会带来适应成本,但新的NetworkManager体系在复杂网络环境下的稳定性和功能性优势明显。建议管理员尽快熟悉nmcli等现代工具,逐步淘汰对ifcfg脚本的依赖。