一、網絡參數配置:搭建穩定網絡基礎
網絡參數配置是 Linux 網絡管理的起點,根據操作方式可分為圖形化配置、命令行配置和配置文件配置,不同方式適用于不同場景(臨時調試 / 永久生效)。
1. 圖形化配置:依賴 NetworkManager 服務
NetworkManager 是 Linux 系統中主流的圖形化網絡管理工具,但不同系統版本對其依賴不同:
- Linux 7 系統:建議停止該服務,避免與其他配置方式沖突;
- Linux 8 及以上系統:統一由 NetworkManager 管理網絡,無需手動關閉。
2. 命令行配置:靈活調試臨時生效
命令行配置適用于臨時調整網絡參數(重啟網絡 / 主機后失效),核心工具包括ifconfig
、ifup/ifdown
和ip address
。
2.1 ifconfig:經典網卡配置工具
- 功能:查看 / 修改網卡參數(如 IP 地址),但無法查看未啟用網卡及配置文件中的多 IP。
- 權限:root 用戶可修改參數,普通用戶僅能查看。
選項 | 作用 | 案例 |
---|---|---|
-a | 查看所有網卡(含未啟用) | ifconfig -a |
up | 啟用網卡(不讀配置文件) | ifconfig ens33 up |
down | 停用網卡 | ifconfig ens33 down |
直接配置 IP | 臨時設置網卡 IP | ifconfig ens33 192.168.115.136/24 |
2.2 ifup/ifdown:基于配置文件的啟停
與ifconfig up/down
的核心區別是:會讀取網卡配置文件,適用于基于配置文件的參數加載。
# 啟用網卡并加載配置
ifup ens33
# 停用網卡
ifdown ens33# 子接口配置(單網卡多IP臨時方案)
ifconfig ens33:0 192.168.115.214/24
# 子接口永久配置(復制配置文件修改)
cd /etc/sysconfig/network-scripts
cp ifcfg-ens33 ifcfg-ens33:0
# 編輯子接口文件:修改NAME、DEVICE、IPADDR等參數
vim ifcfg-ens33:0
# 重啟子接口生效
ifdown ens33:0 && ifup ens33:0
2.3 ip address:現代網絡參數查看工具
ip a
(縮寫)是ifconfig
的替代工具,功能更全面:
- 可查看未啟用網卡;
- 支持查看配置文件中的多 IP 配置;
- 語法簡潔:
ip a
(直接查看所有網卡參數)。
3. 配置文件配置:永久生效的核心方式
通過修改網卡配置文件(路徑:/etc/sysconfig/network-scripts/ifcfg-網卡名
),可實現網絡參數的永久生效,需重啟網卡或網絡服務加載配置。
3.1 單一 IP 地址配置
分為 DHCP 自動獲取和靜態手動配置兩種模式:
配置項 | 含義 | DHCP 模式 | 靜態模式 |
---|---|---|---|
TYPE | 網卡類型 | Ethernet | Ethernet |
BOOTPROTO | IP 獲取方式 | dhcp | static |
NAME | 網卡描述(可選) | ens33 | ens33 |
DEVICE | 網卡設備名(必對) | ens33 | ens33 |
ONBOOT | 是否啟用配置 | yes | yes |
IPADDR | IP 地址(靜態需填) | - | 192.168.115.150 |
PREFIX/NETMASK | 子網掩碼 | - | PREFIX=24 或 NETMASK=255.255.255.0 |
GATEWAY | 默認網關(建議單網關) | - | 192.168.115.2 |
DNS1 | DNS 服務器(多網卡慎填) | - | 192.168.115.2 |
3.2 多 IP 地址配置
在單一配置文件中通過IPADDR1/PREFIX1
、IPADDR2/PREFIX2
實現多 IP:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
# 核心配置(新增部分)
IPADDR1=192.168.115.150
PREFIX1=24
IPADDR2=192.168.115.151
PREFIX2=24
DNS2=192.168.115.3
# 加載配置生效
systemctl restart network 或 ifdown ens33 && ifup ens33
3.3 配置驗證命令
# 驗證IP地址
ifconfig 或 ip a
# 驗證網關
route -n
# 驗證DNS
cat /etc/resolv.conf
二、nmcli 命令詳解
1. 概述
nmcli
?是 NetworkManager 的命令行工具,用于配置和管理網絡連接。使用前需確保 NetworkManager 服務正常運行,且避免與?ip addr
?等命令沖突。
2. 基本格式
nmcli [OPTIONS] OBJECT { COMMAND | help }
- OPTIONS:控制輸出格式(如?
-t
?簡潔模式、-f
?指定字段) - OBJECT:操作對象(如?
general
、device
、connection
) - COMMAND:具體操作(如?
status
、up
、down
)
3. 常用系統指令
NetworkManager 服務管理命令:
# 查看狀態
systemctl status NetworkManager# 啟動/重啟/停止
systemctl start/restart/stop NetworkManager# 開機啟動配置
systemctl enable/disable NetworkManager
4. 核心操作對象
(1)networking(網絡狀態)
查看和控制整體網絡連接狀態:
nmcli networking # 查看是否接管網絡
nmcli n connectivity # 檢查連接狀態(full/limited/portal/none/unknown)
nmcli n on/off # 開啟/關閉網絡
(2)general(系統狀態)
查看系統網絡概覽和主機名設置:
nmcli general status # 顯示系統網絡狀態
nmcli g hostname # 查看主機名
nmcli g h newHostName # 修改主機名(需重啟服務)
(3)connection(連接配置)
管理網絡連接配置(可簡寫為?c
):
# 查看連接
nmcli c show # 所有連接
nmcli c s -a # 僅活動連接# 控制連接
nmcli c up ens33 # 啟動連接
nmcli c down ens33 # 關閉連接
nmcli c delete ens33 # 刪除連接# 修改連接(靜態IP配置示例)
nmcli c m ens33 ipv4.address 192.168.80.10/24
nmcli c m ens33 ipv4.gateway 192.168.80.2
nmcli c m ens33 ipv4.dns 8.8.8.8
nmcli c m ens33 ipv4.method manual # 設為靜態模式# 新增連接
nmcli c a type ethernet con-name ens36 ifname ens36 \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
(4)device(網絡設備)
管理物理網絡設備(可簡寫為?d
):
nmcli d status # 查看設備狀態
nmcli d connect ens33 # 連接設備
nmcli d disconnect ens33 # 斷開設備
nmcli d wifi list # 查看附近WiFi
nmcli d wifi connect "SSID" password "密碼" # 連接WiFi
三、網絡配置方法
方法一:修改 keyfile 配置文件
Rocky9 配置文件位于?/etc/NetworkManager/system-connections/
,格式為 keyfile:
- 編輯對應接口文件(如?
ens33.nmconnection
) - 配置核心字段:
(connection) id=ens33 uuid=1c0d8661-d96c-3ecd-8578-eba771cadac4 type=ethernet autoconnect-priority=-999 interface-name=ens33(ipv4) method=manual address=192.168.1.3/24,192.168.1.1 netmask=255.255.255.0 gateway=192.168.1.1 dns=8.8.8.8;114.114.114.114 route1=10.1.0.0/16,192.168.1.1 route2=10.2.0.0/16,192.168.1.1
- 加載并激活:
nmcli c load /etc/NetworkManager/system-connections/ens33.nmconnection nmcli c up ens33
配置字段解析:
id:用于標識該網絡連接的名稱,可自定義,方便用戶識別和管理不同的網絡連接,通常與網絡接口名稱相關.
uuid:通用唯一識別碼,由系統自動生成,用于在NetworkManager中唯一標識該網絡連接配置,一般無需手動修改.
type:指定網絡連接的類型,常見的值有“ethernet”表示以太網連接,“wifi”表示無線網絡連接等,根據實際網絡設備和連接方式進行選擇.
autoconnect-priority:設置網絡連接的自動連接優先級,數值越小優先級越高,-999表示較低的優先級。可根據需要調整該值來確定多個網絡連接的順序,以便在系統啟動時優先連接重要的網絡.
interface-name:必須與實際的網絡接口設備名稱一致,用于將網絡連接配置與對應的物理網絡接口關聯起來,如“ens33”等.
method:獲取IP地址的方式,常見的值有“auto”表示自動獲取IP地址,通常通過DHCP等方式從網絡中的DHCP服務器獲取IP地址、子網掩碼、網關等網絡配置信息;“manual”表示手動配置靜態IP地址,需要手動指定IP地址、子網掩碼、網關和DNS等信息.
address:當method為manual時,用于指定靜態IP地址和子網掩碼,格式為“IP地址/子網掩碼長度”,還可以在后面添加網關地址,用逗號分隔,如“192.168.1.10/24,192.168.1.1”.
netmask:子網掩碼,也可以在address參數中統一配置,若單獨配置則需按照子網掩碼的格式填寫,如“255.255.255.0”.
gateway:網關地址,用于指定網絡數據包的轉發地址,需與所在網絡環境的網關配置一致.
dns:指定DNS服務器地址,多個DNS服務器之間用分號分隔,如“8.8.8.8;114.114.114.114”.
route:可用于添加靜態路由,格式為“網段,網關”,可以添加多條route來配置多個靜態路由,例如“route1=10.1.0.0/16,192.168.1.2 route2=10.2.0.0/16,192.168.1.2”.