文章目录
- CentOS网络之network和NetworkManager深度解析
 - 1. CentOS网络服务发展历史
 - 1.1 传统network阶段(CentOS 5-6)
 - 1.2 过渡期(CentOS 7)
 - 1.3 新时代(CentOS 8+)
 
- 2. network和NetworkManager的核心区别
 - 3. network服务使用指南
 - 3.1 基础配置方法
 - 3.2 常用管理命令
 - 3.3 注意事项
 
- 4. NetworkManager使用指南
 - 4.1 基础配置方法
 - 4.2 图形化工具
 - 4.3 注意事项
 
- 5. 服务冲突解决方案
 - 5.1 典型冲突表现
 - 5.2 彻底解决方案
 - 5.3 冲突排查流程
 - 5.4 进一步说明network显示active (exited)
 
- 结语:如何选择网络服务
 
CentOS网络之network和NetworkManager深度解析
1. CentOS网络服务发展历史
CentOS网络服务经历了三个主要发展阶段:
1.1 传统network阶段(CentOS 5-6)
- 采用SysV init脚本管理网络
 - 核心配置文件位于
/etc/sysconfig/network-scripts/ - 主要命令:
service network start/stop/restart - 特点:配置简单但缺乏动态管理能力
 
1.2 过渡期(CentOS 7)
- 引入systemd管理机制
 - NetworkManager成为默认服务但与传统network并存
 - 新增
nmcli命令行工具 - 特点:两种服务并存导致配置复杂度增加
 
1.3 新时代(CentOS 8+)
- NetworkManager成为唯一官方支持的网络服务
 - 传统network需通过
network-scripts包额外安装 - 全面支持IPv6和SDN(软件定义网络)
 - 特点:动态网络管理能力大幅增强
 
2. network和NetworkManager的核心区别
| 特性 | network | NetworkManager | 
|---|---|---|
| 管理方式 | 静态配置 | 动态管理 | 
| 适用场景 | 服务器环境 | 桌面/移动设备 | 
| 配置存储 | ifcfg文件 | 二进制配置文件 | 
| 无线网络支持 | 不支持 | 完整支持 | 
| VPN集成 | 需额外脚本 | 原生支持 | 
| 热插拔支持 | 有限 | 完整支持 | 
| 多网卡绑定 | 需手动配置 | 图形化配置 | 
| DNS管理 | 直接修改resolv.conf | 集成DNS管理 | 
| IPv6支持 | 基础支持 | 高级支持 | 
3. network服务使用指南
3.1 基础配置方法
编辑网卡配置文件(示例:/etc/sysconfig/network-scripts/ifcfg-eth0):
DEVICE=eth0 
TYPE=Ethernet 
ONBOOT=yes 
BOOTPROTO=static 
IPADDR=192.168.1.100 
NETMASK=255.255.255.0 
GATEWAY=192.168.1.1 
DNS1=8.8.8.8 
DNS2=8.8.4.4 
 
3.2 常用管理命令
启动/停止/重启 
systemctl start|stop|restart network 查看状态 
systemctl status network 开机自启 
systemctl enable network 
 
3.3 注意事项
- MAC地址冲突:克隆虚拟机时需更新HWADDR
 - 配置生效:修改后必须重启服务
 - DNS配置:建议在ifcfg文件中设置而非直接修改resolv.conf
 - IPv6禁用:如需禁用需在
/etc/sysconfig/network添加IPV6INIT=no - 服务依赖:确保network-manager服务已禁用
 
4. NetworkManager使用指南
4.1 基础配置方法
使用nmcli配置示例:
创建新连接 
nmcli connection add con-name eth0-static \type ethernet ifname eth0 \ipv4.addresses 192.168.1.100/24 \ipv4.gateway 192.168.1.1 \ipv4.dns "8.8.8.8 8.8.4.4" \ipv4.method manual 激活连接 
nmcli connection up eth0-static 
 
4.2 图形化工具
- nmtui:文本界面配置工具
 - GNOME控制中心:桌面环境图形界面
 - cockpit:Web管理界面(端口9090)
 
4.3 注意事项
- 配置持久化:修改后自动保存,无需手动重启服务
 - WiFi管理:需安装NetworkManager-wifi包
 - 企业环境:支持与FreeIPA等目录服务集成
 - 云环境:自动识别AWS/Azure等云平台网络配置
 - 日志查看:
journalctl -u NetworkManager 
5. 服务冲突解决方案
5.1 典型冲突表现
- IP地址配置被意外覆盖
 - 网络接口频繁up/down
 - 路由表被自动修改
 - DNS设置重置
 - 服务启动顺序导致配置失效
 
5.2 彻底解决方案
方案一:完全使用NetworkManager
禁用传统network 
systemctl disable --now network 
yum remove network-scripts 确保NetworkManager接管所有设备 
nmcli device set eth0 managed yes 
 
方案二:完全使用传统network
禁用NetworkManager 
systemctl disable --now NetworkManager 安装传统network支持 
yum install network-scripts 
 
方案三:混合使用(不推荐)
明确设备管理权 
nmcli device set eth0 managed no 在ifcfg文件中添加 
NM_CONTROLLED=no 
 
5.3 冲突排查流程
- 检查服务状态:
systemctl status network NetworkManager - 查看设备管理权:
nmcli device show - 检查配置覆盖:
ls -l /etc/resolv.conf - 分析日志:
journalctl -u network -u NetworkManager --since "1 hour ago" - 验证配置:
nmcli connection showvscat /etc/sysconfig/network-scripts/ifcfg-* 
5.4 进一步说明network显示active (exited)

正常应是 active(running),但是显示exited网络却正常使用,我也没有找到具体原因,按照禁用NetworkManager这些方案或者重装network都没能解决,有知道的大佬求指点,不甚感激
结语:如何选择网络服务
选择network当:
- 管理不需要频繁变更的服务器
 - 需要精确控制网络配置
 - 运行在无图形界面的环境
 - 使用较旧的自动化工具
 
选择NetworkManager当:
- 管理笔记本电脑或移动设备
 - 需要管理多种网络连接(WiFi/VPN等)
 - 在云环境或容器平台运行
 - 需要与其他现代Linux工具集成
 
无论选择哪种方案,建议在CentOS 8+环境中优先考虑NetworkManager,因为它是Red Hat官方推荐的未来方向,且能更好地支持现代网络功能。