文章目錄
- 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 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官方推薦的未來方向,且能更好地支持現代網絡功能。