文章目录
- CentOS网络之network和NetworkManager深度解析
-
- [1. CentOS网络服务发展历史](#1. CentOS网络服务发展历史)
-
- [1.1 传统network阶段(CentOS 5-6)](#1.1 传统network阶段(CentOS 5-6))
- [1.2 过渡期(CentOS 7)](#1.2 过渡期(CentOS 7))
- [1.3 新时代(CentOS 8+)](#1.3 新时代(CentOS 8+))
- [2. network和NetworkManager的核心区别](#2. network和NetworkManager的核心区别)
- [3. network服务使用指南](#3. network服务使用指南)
-
- [3.1 基础配置方法](#3.1 基础配置方法)
- [3.2 常用管理命令](#3.2 常用管理命令)
- [3.3 注意事项](#3.3 注意事项)
- [4. NetworkManager使用指南](#4. NetworkManager使用指南)
-
- [4.1 基础配置方法](#4.1 基础配置方法)
- [4.2 图形化工具](#4.2 图形化工具)
- [4.3 注意事项](#4.3 注意事项)
- [5. 服务冲突解决方案](#5. 服务冲突解决方案)
-
- [5.1 典型冲突表现](#5.1 典型冲突表现)
- [5.2 彻底解决方案](#5.2 彻底解决方案)
- [5.3 冲突排查流程](#5.3 冲突排查流程)
- [5.4 进一步说明network显示active (exited)](#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
):
ini
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 常用管理命令
bash
启动/停止/重启
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配置示例:
bash
创建新连接
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
bash
禁用传统network
systemctl disable --now network
yum remove network-scripts
确保NetworkManager接管所有设备
nmcli device set eth0 managed yes
方案二:完全使用传统network
bash
禁用NetworkManager
systemctl disable --now NetworkManager
安装传统network支持
yum install network-scripts
方案三:混合使用(不推荐)
bash
明确设备管理权
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 show
vscat /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官方推荐的未来方向,且能更好地支持现代网络功能。