Rocky Linux 10.1网络配置:从传统ifcfg到NetworkManager
1. 问题现象与背景解析
最近在Rocky Linux 10.1上配置网络时,发现传统的/etc/sysconfig/network-scripts目录消失了。这其实不是系统安装错误,而是Red Hat系发行版近年来的一项重要变革。作为RHEL的衍生版本,Rocky Linux 9开始就默认采用了新的网络配置方式。
传统网络配置脚本(ifcfg文件)从RHEL 7时代沿用至今,其核心文件通常存放在:
/etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/route-eth0但在新版本中,这些文件被NetworkManager的keyfile格式所取代,默认存储在:
/etc/NetworkManager/system-connections/重要提示:虽然ifcfg方式仍可通过安装额外包来支持,但官方已明确表示将在未来版本中完全移除对传统脚本的支持
2. 新旧网络管理机制对比
2.1 传统network-scripts的运作原理
传统方式通过init脚本调用ifup/ifdown命令,直接操作网络接口。其典型配置示例:
DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 ONBOOT=yes这种方式的局限性包括:
- 缺乏动态网络状态管理能力
- 无法处理现代网络拓扑(如多租户VPN)
- 与NetworkManager服务存在冲突风险
2.2 NetworkManager的新体系
Rocky Linux 10.1默认使用NetworkManager的keyfile后端,其特点包括:
统一配置存储:
- 所有连接配置集中管理
- 支持JSON-like的键值对格式
- 示例配置文件路径:
/etc/NetworkManager/system-connections/ens18.nmconnection
动态响应能力:
# 查看当前连接状态 nmcli connection show # 实时监控网络变化 nmcli monitor多后端支持:
- keyfile(默认)
- ifcfg-rh(兼容模式)
- ifupdown(Debian系)
3. 实际配置操作指南
3.1 基础网络配置方法
通过nmcli配置静态IP的完整流程:
# 1. 创建新连接配置 nmcli connection add con-name "office-lan" ifname ens18 \ type ethernet ip4 192.168.1.100/24 gw4 192.168.1.1 # 2. 设置DNS(Cloudflare示例) nmcli connection modify "office-lan" \ ipv4.dns "1.1.1.1 1.0.0.1" # 3. 启用连接 nmcli connection up "office-lan" # 4. 验证配置 ip addr show ens183.2 传统ifcfg用户的过渡方案
如需临时恢复旧模式:
安装兼容包:
dnf install network-scripts禁用NetworkManager:
systemctl disable --now NetworkManager systemctl enable --now network
注意:这种降级方案可能导致与某些新硬件(如Wi-Fi 6网卡)的兼容性问题
4. 高级网络场景配置
4.1 绑定接口配置
创建mode-4(802.3ad)绑定接口:
nmcli connection add type bond con-name bond0 ifname bond0 \ mode 802.3ad ipv4.method manual ipv4.addresses 10.0.0.2/24 nmcli connection add type ethernet slave-type bond \ con-name bond0-port1 ifname ens19 master bond0 nmcli connection add type ethernet slave-type bond \ con-name bond0-port2 ifname ens20 master bond04.2 VLAN配置示例
为ens18接口添加VLAN 100:
nmcli connection add type vlan con-name vlan100 dev ens18 id 100 \ ipv4.method manual ipv4.addresses 192.168.100.2/245. 常见问题排查手册
5.1 基础诊断命令
# 查看NetworkManager日志 journalctl -u NetworkManager -f # 检查连接配置 nmcli connection show --active # 测试网络连通性 nmcli networking connectivity check5.2 典型错误解决方案
问题1:nmcli修改配置后不生效
- 解决方案:
nmcli connection reload nmcli connection down <name> && nmcli connection up <name>
问题2:双网卡路由混乱
- 修复方法:
nmcli connection modify <conn> ipv4.never-default yes nmcli connection modify <default_conn> ipv4.gateway <correct_gw>
问题3:DHCP获取失败
- 排查步骤:
- 检查物理连接状态:
nmcli device show <iface> - 测试DHCP服务:
dhclient -v <iface> - 检查防火墙规则:
firewall-cmd --list-all
- 检查物理连接状态:
6. 最佳实践建议
配置备份策略:
# 定期备份网络配置 mkdir -p /backup/network cp /etc/NetworkManager/system-connections/* /backup/network/ chmod 600 /backup/network/*自动化部署技巧: 在Kickstart文件中添加:
%post nmcli connection add type ethernet con-name prod-net ifname ens18 \ ipv4.method manual ipv4.addresses 10.0.0.100/24 \ ipv4.gateway 10.0.0.1 ipv4.dns "8.8.8.8" %end性能调优参数: 对于高吞吐量网卡:
echo 'ETHTOOL_OPTS="-G ${DEVICE} rx 4096 tx 4096"' > /etc/sysconfig/network-scripts/ifcfg-<device>
经过实际部署验证,新网络管理体系在以下场景表现优异:
- 云环境中的动态网络配置
- 容器化部署的网桥管理
- 企业级SDN网络集成
对于从旧版本迁移的用户,建议先在测试环境熟悉nmcli操作,再逐步将ifcfg脚本转换为keyfile格式。虽然学习曲线存在,但新体系最终会带来更稳定高效的网络管理体验
