CentOS网络之network和NetworkManager深度解析

文章目录

  • 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 注意事项

  1. MAC地址冲突:克隆虚拟机时需更新HWADDR
  2. 配置生效:修改后必须重启服务
  3. DNS配置:建议在ifcfg文件中设置而非直接修改resolv.conf
  4. IPv6禁用:如需禁用需在/etc/sysconfig/network添加IPV6INIT=no
  5. 服务依赖:确保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 图形化工具

  1. nmtui:文本界面配置工具
  2. GNOME控制中心:桌面环境图形界面
  3. cockpit:Web管理界面(端口9090)

4.3 注意事项

  1. 配置持久化:修改后自动保存,无需手动重启服务
  2. WiFi管理:需安装NetworkManager-wifi包
  3. 企业环境:支持与FreeIPA等目录服务集成
  4. 云环境:自动识别AWS/Azure等云平台网络配置
  5. 日志查看:journalctl -u NetworkManager

5. 服务冲突解决方案

5.1 典型冲突表现

  1. IP地址配置被意外覆盖
  2. 网络接口频繁up/down
  3. 路由表被自动修改
  4. DNS设置重置
  5. 服务启动顺序导致配置失效

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 冲突排查流程

  1. 检查服务状态:systemctl status network NetworkManager
  2. 查看设备管理权:nmcli device show
  3. 检查配置覆盖:ls -l /etc/resolv.conf
  4. 分析日志:journalctl -u network -u NetworkManager --since "1 hour ago"
  5. 验证配置:nmcli connection show vs cat /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官方推荐的未来方向,且能更好地支持现代网络功能。

相关推荐
mpr0xy1 分钟前
在离线 OpenEuler-22.03 服务器上升级 OpenSSH 的完整指南
运维·服务器·网络·openeuler·openssh
一匹电信狗20 分钟前
【Linux我做主】探秘进程与fork
linux·运维·服务器·c++·ubuntu·小程序·unix
ZZZKKKRTSAE26 分钟前
快速上手Linux火墙管理
linux·运维·服务器·防火墙
belldeep1 小时前
WSL 安装 Debian 12 后,如何安装图形界面 X11 ?
linux·debian·tk·x11·startx
wuzhenwei04191 小时前
centos系统redis-dump安装
linux·redis·centos
迷雾骑士1 小时前
CentOS Stream安装MinIO教程
centos·minio
shane-u1 小时前
【已解决】docker search --limit 1 centos Error response from daemon
docker·容器·centos
平生不喜凡桃李1 小时前
Linux 文件(3)
linux·运维·服务器
子非衣3 小时前
Ubuntu部署私有Gitlab
linux·ubuntu·gitlab
迪丽热爱3 小时前
网络Tips20-007
网络