目錄
一、學習目標與適用場景
二、網絡管理基礎概念
1. NetworkManager服務
2. 核心管理工具
三、NetworkManager服務管理(基礎操作)
1. 服務狀態控制
四、網絡參數配置(IP/DNS/網關)
1. 圖形化配置(僅了解,服務器不推薦)
基礎操作(以傳統圖形工具為例):
2. 命令行配置(核心重點)
(1)傳統工具(逐步淘汰,但需了解)
① ifconfig(查看/臨時配置網卡)
② ifup/ifdown(基于配置文件啟停網卡)
③ 子接口配置(單網卡多IP,傳統方式)
④ ip命令(推薦查看網卡信息,替代ifconfig)
(2)配置文件配置(永久生效,推薦重點掌握)
① 單一IP地址配置
模式1:自動獲取IP(DHCP,需網絡中有DHCP服務器)
模式2:手動配置靜態IP(推薦服務器使用)
② 多IP地址配置
③ 驗證配置是否生效
3. 路由配置(靜態路由,高級場景)
(1)route命令(傳統方式,逐步被ip route取代)
(2)ip route命令(推薦,更現代)
五、網絡連接查看與管理
1. 查看網絡連接狀態
(1)nmcli(推薦,命令行)
(2)傳統工具(輔助)
2. 啟用/禁用網絡連接
六、網卡綁定(Bonding,高可用配置)
1. 什么是網卡綁定?
2. Rocky Linux 9 配置步驟(使用nmcli,推薦)
前置條件:
操作流程(以LACP模式(802.3ad)?為例,其他模式見下文):
步驟1:查看可用網卡
步驟2:創建Bond邏輯網卡
其他常用Bond模式(通過mode參數指定):
步驟3:添加物理網卡為從屬接口
步驟4:激活Bond連接
步驟5:驗證配置
步驟6:配置其他Bonding模式(示例)
3. 完整自動化腳本(可選)
一、學習目標與適用場景
文檔學習Linux系統(以Rocky Linux 9為核心,兼容CentOS/RHEL等主流發行版)的網絡配置與管理技能,涵蓋從基礎概念到應用的知識體系。
- ?
配置靜態IP/DNS/網關(臨時和永久生效);
- ?
管理網絡連接(啟用/禁用/查看狀態);
- ?
診斷網絡問題(抓包、路由追蹤、服務測試);
- ?
實現網卡高可用(Bonding綁定技術);
- ?
適配服務器和桌面環境的不同需求。
二、網絡管理基礎概念
1. NetworkManager服務
- ?
?作用?:Linux系統默認的網絡管理“大腦”,負責自動管理網卡連接、IP分配、網絡狀態監控等。
- ?
?優勢?:支持動態網絡切換(如WiFi/有線自動切換)、開機自動聯網,適合服務器和桌面環境(尤其是需要穩定聯網的場景)。
- ?
?版本差異?:Linux 7及之前版本可能默認使用傳統
network
服務,但從Linux 8開始,官方統一推薦使用NetworkManager
(包括服務器環境)。
2. 核心管理工具
工具/命令 | 類型 | 適用場景 | 特點 |
---|---|---|---|
?nmcli? | 命令行工具 | 服務器/生產環境(推薦) | NetworkManager的命令行接口,功能強大、支持腳本化,可遠程操作且配置永久生效。 |
?nmtui? | 文本圖形界面 | 不熟悉命令的用戶(輔助) | 通過文本菜單交互配置網絡,比純命令更直觀(但仍需基礎操作知識)。 |
?ifconfig? | 傳統命令 | 舊系統/臨時查看(逐步淘汰) | 查看/臨時配置網卡IP(重啟后失效),需安裝 |
?ip? | 現代命令 | 推薦查看網卡信息(替代ifconfig) | 功能更強大,支持查看未啟用的網卡、多IP配置等,無需額外安裝。 |
?route/ip route? | 路由配置 | 靜態路由設置 | 管理系統的路由表(如指定訪問特定網絡的網關)。 |
?? ?重要原則?:生產環境中優先使用
nmcli
或配置文件(如/etc/sysconfig/network-scripts/ifcfg-*
),避免直接用ip
/ifconfig
臨時修改(重啟后可能失效,且易引發配置沖突)。
三、NetworkManager服務管理(基礎操作)
NetworkManager是網絡管理的核心服務,所有高級配置(如nmcli)都依賴它正常運行。以下是服務控制的關鍵命令:
1. 服務狀態控制
# 查看服務是否運行(重點關注"active (running)"狀態)
systemctl status NetworkManager# 啟動服務(立即生效,但重啟后失效)
systemctl start NetworkManager# 停止服務(謹慎使用!會導致所有網絡連接斷開)
systemctl stop NetworkManager# 重啟服務(修改配置后必須執行,使新配置生效)
systemctl restart NetworkManager# 設置開機自動啟動(推薦正常使用)
systemctl enable NetworkManager# 禁止開機自動啟動(徹底禁用)
systemctl disable NetworkManager# 一鍵操作:關閉服務且禁止開機自啟(完全禁用)
systemctl disable --now NetworkManager# 一鍵操作:啟動服務并設置開機自啟(正常啟用)
systemctl enable --now NetworkManager# 檢查是否配置了開機自啟
systemctl is-enabled NetworkManager # 返回"enabled"表示已設置
📌 ?注意?:如果服務未運行(
systemctl status
顯示inactive (dead)
),所有nmcli
命令將無法生效,需先啟動服務。
四、網絡參數配置(IP/DNS/網關)
1. 圖形化配置(僅了解,服務器不推薦)
在Linux 7及之前版本中,通常通過圖形界面工具(如“網絡設置”)管理網絡;但從Linux 8開始,官方統一推薦使用NetworkManager
(命令行或文本界面)。圖形化配置適合桌面用戶,但服務器通常無圖形界面,且配置不易保存,?本部分僅作了解。
基礎操作(以傳統圖形工具為例):
- ?
通過系統菜單進入“網絡設置” → 選擇網卡 → 設置IP(靜態/DHCP)、網關、DNS。
- ?
?缺點?:配置可能因系統更新或重裝丟失,且不適合遠程管理。
2. 命令行配置(核心重點)
(1)傳統工具(逐步淘汰,但需了解)
① ifconfig(查看/臨時配置網卡)
- ?
?作用?:查看網卡的IP地址、子網掩碼等信息,或臨時配置IP(重啟網絡服務、網卡或主機后失效)。
- ?
?限制?:默認不顯示未啟用的網卡;普通用戶只能查看,需
root
權限修改;新系統(如CentOS 8+)可能未預裝,需運行yum install net-tools
安裝。
?常用命令?:
# 查看所有網卡信息(包括未啟用的網卡,關鍵!)
ifconfig -a# 臨時配置網卡IP(例如ens33設為192.168.1.100/24)
ifconfig ens33 192.168.1.100/24# 啟用網卡(不重新讀取配置文件)
ifconfig ens33 up# 禁用網卡
ifconfig ens33 down
?? ?注意?:臨時配置僅在當前會話有效,重啟網絡服務(
systemctl restart network
)、網卡或主機后會丟失!
② ifup/ifdown(基于配置文件啟停網卡)
- ?
?作用?:通過讀取網卡的配置文件(如
/etc/sysconfig/network-scripts/ifcfg-ens33
)啟動或停止網卡,配置永久生效(但需手動觸發)。
?常用命令?:
# 啟動網卡(根據配置文件設置IP等參數)
ifup ens33# 停止網卡
ifdown ens33
③ 子接口配置(單網卡多IP,傳統方式)
- ?
?作用?:通過創建虛擬子接口(如
ens33:0
)為單塊物理網卡綁定多個IP地址,但需手動配置文件,且不能使用DHCP?(只能靜態IP)。
?操作步驟?:
# 1. 進入網卡配置目錄
cd /etc/sysconfig/network-scripts# 2. 復制主網卡配置文件創建子接口(例如基于ens33創建ens33:0)
cp ifcfg-ens33 ifcfg-ens33:0# 3. 修改子接口配置(靜態IP示例)
vim ifcfg-ens33:0
配置文件內容示例(關鍵字段):
TYPE=Ethernet
BOOTPROTO=static # 必須為static(不能是dhcp)
NAME=ens33:0
DEVICE=ens33:0
ONBOOT=yes # 開機啟動
IPADDR=192.168.1.200 # 子接口IP(與主IP不同)
PREFIX=24 # 子網掩碼位數(等同于255.255.255.0)
# 注意:不能配置DHCP或GATEWAY(避免沖突)
?生效命令?:
ifdown ens33:0 && ifup ens33:0 # 重啟子接口
④ ip命令(推薦查看網卡信息,替代ifconfig)
- ?
?作用?:功能比
ifconfig
更強大,支持查看未啟用的網卡、多IP配置等,且無需額外安裝(新系統默認預裝)。
?常用命令?:
# 查看所有網卡及IP信息(最常用,推薦!)
ip a# 簡寫形式(等價于ip a)
ip address
輸出示例:會顯示所有網卡(包括未啟用的),以及每個網卡的IP地址、子網掩碼、狀態等詳細信息。
(2)配置文件配置(永久生效,推薦重點掌握)
網絡參數的永久配置通過修改網卡的配置文件實現,路徑為:
?/etc/sysconfig/network-scripts/ifcfg-網卡名
?(例如ifcfg-ens33
,網卡名可通過ip a
或nmcli device status
查看)。
?配置文件生效方式?:
- ?
修改后需重啟網絡服務(
systemctl restart network
),或單獨啟停網卡(ifup 網卡名
/ifdown 網卡名
)。
① 單一IP地址配置
模式1:自動獲取IP(DHCP,需網絡中有DHCP服務器)
vim /etc/sysconfig/network-scripts/ifcfg-ens33
配置文件內容示例:
TYPE=Ethernet # 網卡類型(固定為Ethernet)
BOOTPROTO=dhcp # IP獲取方式:dhcp(自動)、static(手動)、none(不配置)
NAME=ens33 # 網卡描述名(可自定義,無嚴格要求)
DEVICE=ens33 # 必須與實際網卡名一致(通過ip a查看!)
ONBOOT=yes # 是否開機啟動(yes/no)
📌 說明:
BOOTPROTO=dhcp
時,系統會自動從DHCP服務器獲取IP、網關和DNS(無需手動配置)。
模式2:手動配置靜態IP(推薦服務器使用)
TYPE=Ethernet
BOOTPROTO=static # 手動配置
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.100 # IP地址(例如192.168.1.100)
PREFIX=24 # 子網掩碼位數(等同于255.255.255.0)
# 或使用NETMASK(二選一):
# NETMASK=255.255.255.0
GATEWAY=192.168.1.1 # 默認網關(同一系統建議只配一個)
DNS1=8.8.8.8 # 首選DNS服務器
# DNS2=8.8.4.4 # 可選備用DNS(多網卡時避免沖突)
?? ?關鍵點?:
- ?
BOOTPROTO=static
表示手動配置,需明確填寫IPADDR
、PREFIX
(或NETMASK
)、GATEWAY
、DNS
等參數。- ?
DEVICE
必須與實際網卡名一致(例如通過ip a
看到網卡名為ens33
,則此處必須寫ens33
)。- ?
ONBOOT=yes
表示開機自動啟用該配置。
② 多IP地址配置
在同一個網卡配置文件中,通過添加IPADDR1
、PREFIX1
、IPADDR2
等字段配置多個IP地址(適用于需要單網卡綁定多個IP的場景)。
配置文件示例:
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR1=192.168.1.100 # 主IP
PREFIX1=24
GATEWAY=192.168.1.1
DNS1=8.8.8.8
IPADDR2=192.168.1.101 # 輔助IP
PREFIX2=24
DNS2=8.8.4.4
DNS3=114.114.114.114
?生效命令?:
systemctl restart network # 重啟網絡服務(影響所有網卡)
# 或單獨重啟該網卡:
ifdown ens33 && ifup ens33
③ 驗證配置是否生效
# 查看IP地址(確認配置的IP已綁定)
ip a
# 或
ifconfig# 查看默認網關
route -n# 查看DNS配置
cat /etc/resolv.conf
輸出示例:
- ?
ip a
中會顯示網卡的inet
字段包含配置的IP(如192.168.1.100/24
)。 - ?
route -n
中會顯示0.0.0.0
對應的網關地址(如192.168.1.1
)。 - ?
cat /etc/resolv.conf
中會顯示配置的DNS服務器(如nameserver 8.8.8.8
)。
3. 路由配置(靜態路由,高級場景)
路由表決定了數據包如何從本地網絡轉發到目標網絡(例如訪問外網需經過網關)。靜態路由需手動配置,常用于多網段互聯或特殊網絡拓撲。
(1)route命令(傳統方式,逐步被ip route取代)
- ?
?作用?:查看或設置Linux內核的靜態路由表(臨時生效,重啟后丟失)。
?常用命令?:
# 查看當前路由表(-n表示以數字形式顯示IP,不解析主機名)
route -n# 添加路由(例如訪問192.168.2.0/24網絡需經過網關192.168.1.254)
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.254# 刪除路由
route del -net 192.168.2.0 netmask 255.255.255.0
?參數說明?:
- ?
-net
:目標是一個網絡(如192.168.2.0/24
)。 - ?
-host
:目標是一個具體主機(如192.168.2.100
)。 - ?
gw
:指定下一跳網關地址。
(2)ip route命令(推薦,更現代)
# 查看路由表(推薦)
ip route# 添加靜態路由(示例:訪問192.168.2.0/24走網關192.168.1.254)
ip route add 192.168.2.0/24 via 192.168.1.254# 刪除靜態路由
ip route del 192.168.2.0/24
📌 ?提示?:若需永久生效,需將路由命令寫入啟動腳本(如
/etc/rc.local
),或通過NetworkManager的高級配置實現(較復雜,服務器通常手動維護)。
五、網絡連接查看與管理
1. 查看網絡連接狀態
(1)nmcli(推薦,命令行)
# 查看所有已保存的網絡連接(包括未激活的配置)
nmcli connection show# 查看當前活動的連接(正在使用的連接)
nmcli connection show --active# 查看某個連接的詳細信息(如ens33)
nmcli connection show ens33
(2)傳統工具(輔助)
# 查看網卡狀態(是否連接、IP地址等)
ip a# 查看路由表(確認網絡可達性)
ip route# 查看DNS配置
cat /etc/resolv.conf
2. 啟用/禁用網絡連接
# 啟動某個連接(如ens33,根據配置文件中的名稱)
nmcli connection up ens33# 停止某個連接
nmcli connection down ens33
📌 說明:連接名稱可通過
nmcli connection show
查看(例如可能是ens33
、Wired connection 1
等)。
六、網卡綁定(Bonding,高可用配置)
1. 什么是網卡綁定?
網卡綁定(Bonding)是將多個物理網卡組合成一個邏輯網卡的技術,實現以下目標:
- ?
?高可用?:當一塊網卡故障時,自動切換到另一塊網卡(如服務器雙網卡冗余)。
- ?
?負載均衡?:多塊網卡同時傳輸數據,提升網絡吞吐量(如高并發服務器)。
綁定模式(Mode)決定了具體的工作方式(如主備、輪詢、LACP等),需根據網絡環境和交換機支持情況選擇。
2. Rocky Linux 9 配置步驟(使用nmcli,推薦)
前置條件:
- ?
至少兩塊物理網卡(例如
ens192
和ens224
)。 - ?
確認網卡名稱(通過
nmcli device status
查看)。 - ?
具有
root
權限(所有命令需sudo
或root用戶執行)。
操作流程(以LACP模式(802.3ad)?為例,其他模式見下文):
步驟1:查看可用網卡
nmcli device status
輸出示例:
DEVICE TYPE STATE CONNECTION
ens192 ethernet disconnected --
ens224 ethernet disconnected --
lo loopback unmanaged --
記下要綁定的網卡名(如ens192
和ens224
)。
步驟2:創建Bond邏輯網卡
根據需求選擇綁定模式(以下以LACP(802.3ad,需交換機支持)?為例):
nmcli connection add type bond con-name bond0 ifname bond0 \mode 802.3ad \ip4 192.168.1.100/24 \gw4 192.168.1.1 \ipv4.dns "8.8.8.8,1.1.1.1" \ipv4.method manual
?參數說明?:
- ?
type bond
:創建綁定連接。 - ?
con-name bond0
:綁定連接的名稱(自定義,如bond0
)。 - ?
ifname bond0
:綁定后的邏輯網卡名(通常為bond0
)。 - ?
mode 802.3ad
:LACP模式(需交換機配置LACP聚合)。 - ?
ip4
/gw4
/ipv4.dns
:靜態IP配置(若用DHCP則改為ipv4.method auto
)。
其他常用Bond模式(通過mode
參數指定):
模式編號 | NMCLI參數值 | 中文名稱 | 特點 | 適用場景 |
---|---|---|---|---|
0 | balance-rr | 輪詢 | 數據包依次從各網卡發送,負載均衡但需交換機端口聚合支持。 | 需要負載均衡且交換機支持聚合 |
1 | active-backup | 主備 | 僅一塊網卡工作,故障時自動切換,無需交換機配置(高可用首選)。 | 服務器高可用(無交換機要求) |
4 | 802.3ad | 動態鏈路聚合 | 標準LACP模式,與交換機動態協商聚合鏈路,提供最佳性能與可靠性。 | 企業級數據中心(需交換機LACP) |
6 | balance-alb | 自適應負載均衡 | 出入流量均負載均衡,無需交換機配置(CPU占用略高)。 | 無交換機支持的高可用 |
5 | balance-tlb | 自適應傳輸負載均衡 | 僅出口流量均衡,入口流量由當前網卡處理(容錯能力較弱)。 | 特定流量優化場景 |
2 | balance-xor | 異或負載均衡 | 基于MAC地址計算選擇網卡,保證數據包順序但流量可能不均。 | 特定應用需求 |
步驟3:添加物理網卡為從屬接口
將實際的物理網卡(如ens192
和ens224
)綁定到邏輯網卡bond0
:
# 添加第一個從屬網卡(ens192)
nmcli connection add type bond-slave con-name bond-slave-ens192 ifname ens192 master bond0# 添加第二個從屬網卡(ens224)
nmcli connection add type bond-slave con-name bond-slave-ens224 ifname ens224 master bond0
步驟4:激活Bond連接
nmcli connection up bond0
激活后,邏輯網卡bond0
將作為主接口工作,物理網卡ens192
和ens224
作為從屬接口協同工作。
步驟5:驗證配置
# 查看設備狀態(確認bond0和從屬網卡已連接)
nmcli device status
# 正常輸出應包含:
# DEVICE TYPE STATE CONNECTION
# bond0 bond connected bond0
# ens192 ethernet connected bond-slave-ens192
# ens224 ethernet connected bond-slave-ens224# 查看bond詳細狀態(關鍵信息:網卡角色、流量分配)
cat /proc/net/bonding/bond0
# 輸出會顯示當前活躍網卡、備用網卡、鏈路狀態等# 檢查bond0的IP地址
ip addr show bond0# 測試網絡連通性(確認綁定生效)
ping -c 4 8.8.8.8
步驟6:配置其他Bonding模式(示例)
若需使用其他模式(如主備模式),只需修改mode
參數:
# 主備模式(active-backup,mode 1)
nmcli connection add type bond con-name bond0 ifname bond0 \mode active-backup \ip4 192.168.1.100/24 \gw4 192.168.1.1 \ipv4.method manual# 輪詢模式(balance-rr,mode 0)
nmcli connection add type bond con-name bond0 ifname bond0 \mode balance-rr \ip4 192.168.1.100/24 \gw4 192.168.1.1 \ipv4.method manual# 自適應負載均衡(balance-alb,mode 6)
nmcli connection add type bond con-name bond0 ifname bond0 \mode balance-alb \ip4 192.168.1.100/24 \gw4 192.168.1.1 \ipv4.method manual