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官方推荐的未来方向,且能更好地支持现代网络功能。

相关推荐
qq192572302715 分钟前
网络协议传输层
网络·网络协议
芯盾时代16 分钟前
安全大模型智驱网络和数据安全效能跃迁
网络·人工智能·安全·网络安全
dualven_in_csdn44 分钟前
搞了两天的win7批处理脚本问题
java·linux·前端
被瞧不起的神1 小时前
Docker 安装教程(CentOS 系统)纯新手可入门
docker·容器·centos
晨曦backend2 小时前
Vim 匹配跳转与搜索命令完整学习笔记
linux·编辑器·vim
爬呀爬的水滴4 小时前
解决Ubuntu24.04版本,右键没有共享选项的问题
linux·服务器·ubuntu·samba·共享文件夹
IT coke4 小时前
centos7部署AWStats日志分析系统
linux·运维·centos
雾岛心情5 小时前
【黑客与安全】Linux的常用命令之系统架构信息获取系列命令
linux·运维·服务器
杯莫停丶5 小时前
Linux基础指令大全
linux·运维·chrome
dalerkd5 小时前
企业产品网络安全日志6月10日-WAF资费消耗排查
网络·安全·web安全