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

相关推荐
x-cmd43 分钟前
[250430] Kali Linux 存储库密钥丢失导致所有用户无法正常更新 APT
linux·运维·服务器·kali linux
星雨流星天的笔记本1 小时前
3、Linux操作系统下,linux的技术手册使用(man)
linux·服务器
一刀到底2111 小时前
从实列中学习linux shell6: 写一个 shell 脚本 过滤 恶意ip 攻击
linux·运维·shell
pengdott2 小时前
HAproxy+keepalived+tomcat部署高可用负载均衡实践
linux·运维·服务器·tomcat·负载均衡
自由鬼2 小时前
深海科技服务博客简介
运维·网络·人工智能·程序人生·安全威胁分析·个人开发·数据安全
北观止2 小时前
批量删除OpenStack实例
linux·前端·chrome·openstack
一苇所如3 小时前
jupyter已经安装但是无法通过命令行启动
linux·windows·jupyter
m0_564264183 小时前
【尝试解决】无法连接到xxx:L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到一个处理错误。
网络·经验分享·内网穿透·vpn·局域网·ipsec·l2tp
努力也学不会java3 小时前
【网络原理】 《TCP/IP 协议深度剖析:从网络基础到协议核心》
网络·网络协议·tcp/ip·安全·php
Vicssic3 小时前
【Linux 网络】网络工具ifconfig和iproute/iproute2工具详解
linux·运维·网络