nmcli 是 NetworkManager 的命令行工具,用于在 Linux 系統(tǒng)中管理網(wǎng)絡(luò)連接與設(shè)備,無需圖形界面即可完成配置、啟停、查看狀態(tài)等操作。
一、基本語法
nmcli [OPTIONS] OBJECT {COMMAND | help} [ARGUMENTS]
-
OPTIONS:控制輸出格式與行為,如
-t(簡潔輸出)、-p(美觀輸出)、-f(指定字段)。 -
OBJECT:操作對象,核心有 5 類:
-
general:NetworkManager 全局狀態(tài) -
networking:整體網(wǎng)絡(luò)開關(guān) -
radio:無線/藍(lán)牙等射頻開關(guān) -
connection(可簡寫c):網(wǎng)絡(luò)連接配置(最常用) -
device(可簡寫d):物理網(wǎng)卡設(shè)備管理
-
二、nmcli 常用命令速查表(極簡版)
1. 查看狀態(tài)
# 查看 NetworkManager 狀態(tài)
nmcli general status
# 查看所有網(wǎng)卡設(shè)備狀態(tài)
nmcli device status
nmcli d status
# 查看所有網(wǎng)絡(luò)連接配置
nmcli connection show
nmcli c show
# 查看網(wǎng)卡詳細(xì)信息
nmcli device show eth0
nmcli d show eth0
# 查看某個(gè)連接詳情
nmcli connection show 連接名
2. 啟停連接/網(wǎng)卡
# 啟動(dòng)一個(gè)連接配置
nmcli connection up 連接名
nmcli c up 連接名
# 關(guān)閉一個(gè)連接配置
nmcli connection down 連接名
nmcli c down 連接名
# 直接斷開/啟用網(wǎng)卡設(shè)備
nmcli device disconnect eth0
nmcli device connect eth0
3. 創(chuàng)建有線連接(最常用)
3.1 DHCP 自動(dòng)獲取IP
nmcli connection add \
type ethernet \
con-name mynet \
ifname eth0 \
autoconnect yes
3.2 靜態(tài) IP
nmcli connection add \
type ethernet \
con-name mynet \
ifname eth0 \
ipv4.method manual \
ipv4.addresses 192.168.1.100/24 \
ipv4.gateway 192.168.1.1 \
ipv4.dns "8.8.8.8 114.114.114.114" \
autoconnect yes
4. 修改已有連接
# 修改 IP
nmcli connection modify mynet ipv4.addresses 192.168.1.101/24
# 修改網(wǎng)關(guān)
nmcli connection modify mynet ipv4.gateway 192.168.1.254
# 修改 DNS
nmcli connection modify mynet ipv4.dns 223.5.5.5
# 追加 DNS
nmcli connection modify mynet +ipv4.dns 114.114.114.114
# 改成 DHCP
nmcli connection modify mynet ipv4.method auto
修改后必須重啟連接生效:
nmcli c down mynet && nmcli c up mynet
5. 刪除連接
nmcli connection delete 連接名
nmcli c delete 連接名
6. Wi?Fi 管理(服務(wù)器/筆記本都能用)
# 查看 WiFi 開關(guān)
nmcli radio wifi
# 開啟/關(guān)閉 WiFi
nmcli radio wifi on
nmcli radio wifi off
# 掃描附近 WiFi
nmcli device wifi list
# 連接 WiFi
nmcli device wifi connect "WiFi名" password "密碼"
7. 重載/重啟網(wǎng)絡(luò)
# 重載配置文件
nmcli connection reload
# 重啟所有網(wǎng)絡(luò)
systemctl restart NetworkManager
8. 網(wǎng)口聚合
什么是網(wǎng)口聚合(鏈路聚合 / 綁定 bond)?
網(wǎng)口聚合就是:把 2 個(gè)或多個(gè)物理網(wǎng)卡 綁定成 1 個(gè)虛擬網(wǎng)卡(bond)。
作用:
- 增加帶寬:兩張千兆口綁一起,接近 2G 帶寬
- 高可用/冗余:斷一根網(wǎng)線、壞一個(gè)網(wǎng)卡,業(yè)務(wù)不斷
- 負(fù)載均衡:流量分到多個(gè)網(wǎng)口
常用模式(重點(diǎn)記 2 個(gè)):
- mode=1(active-backup)主備:最常用、交換機(jī)不用配置,一個(gè)壞了自動(dòng)切另一個(gè)
- mode=4(802.3ad)LACP:需要交換機(jī)配置聚合,能疊加帶寬
使用nmcli 配置網(wǎng)口聚合
假設(shè):
- 物理網(wǎng)卡:eth0、eth1
- 聚合名字:bond0
- IP:192.168.1.100/24
- 網(wǎng)關(guān):192.168.1.1
- DNS:223.5.5.5
- 模式:mode=1 主備(最簡單安全)
- 創(chuàng)建 bond 設(shè)備(主備模式)
nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup"
- 把 eth0、eth1 加入 bond0
nmcli connection add type ethernet con-name bond0-slave-eth0 ifname eth0 master bond0
nmcli connection add type ethernet con-name bond0-slave-eth1 ifname eth1 master bond0
- 給 bond0 設(shè)置靜態(tài)IP
nmcli connection modify bond0 ipv4.addresses 192.168.1.100/24
nmcli connection modify bond0 ipv4.gateway 192.168.1.1
nmcli connection modify bond0 ipv4.dns 223.5.5.5
nmcli connection modify bond0 ipv4.method manual
- 啟動(dòng) bond
nmcli connection up bond0
nmcli connection up bond0-slave-eth0
nmcli connection up bond0-slave-eth1
查看聚合狀態(tài)
cat /proc/net/bonding/bond0 # 看bond詳細(xì)狀態(tài)、主備網(wǎng)卡、模式
nmcli connection show # 看所有連接
nmcli device status # 看網(wǎng)卡狀態(tài)
如果要 mode=4 LACP 模式(需交換機(jī)配置)
只需要把第一條命令改成:
nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=802.3ad,lacp_rate=fast"
?? 必須交換機(jī)也配置 LACP 聚合,否則會(huì)環(huán)路、掉線。
極簡總結(jié):
- bond 就是多網(wǎng)卡綁一起,防掉線、提帶寬
- mode1 主備,不用配交換機(jī),最穩(wěn)
- mode4 疊加帶寬,必須交換機(jī)配LACP
- 上面那 4 條 nmcli 命令,直接改IP、網(wǎng)卡名就能用
三、核心概念區(qū)分
-
device(設(shè)備):物理網(wǎng)卡(如
ens33、wlan0),是硬件載體。 - connection(連接):一套配置(IP、DNS、網(wǎng)關(guān)等),可綁定到設(shè)備,一個(gè)設(shè)備可對應(yīng)多個(gè)連接。
四、使用場景
- 服務(wù)器/無桌面環(huán)境:替代圖形化網(wǎng)絡(luò)管理工具。
- 自動(dòng)化腳本:用
-t簡潔輸出,便于解析與批量配置。 - 快速排障:一鍵查看連接狀態(tài)、IP、網(wǎng)關(guān)、DNS。
命令速查版本
# ========== nmcli 一行命令速查表(帶中文說明) ==========
nmcli general status # 查看NetworkManager全局狀態(tài)
nmcli device status # 查看所有網(wǎng)卡設(shè)備狀態(tài)
nmcli connection show # 查看所有網(wǎng)絡(luò)連接配置
nmcli device show eth0 # 查看eth0網(wǎng)卡詳細(xì)信息
nmcli connection up 連接名 # 啟動(dòng)指定網(wǎng)絡(luò)連接
nmcli connection down 連接名 # 關(guān)閉指定網(wǎng)絡(luò)連接
nmcli device disconnect eth0 # 斷開eth0網(wǎng)卡
nmcli connection add type ethernet con-name mynet ifname eth0 autoconnect yes # 創(chuàng)建DHCP有線連接
nmcli connection add type ethernet con-name mynet ifname eth0 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 114.114.114.114" autoconnect yes # 創(chuàng)建靜態(tài)IP有線連接
nmcli connection modify mynet ipv4.addresses 192.168.1.101/24 # 修改連接IP
nmcli connection modify mynet ipv4.method auto # 連接改DHCP模式
nmcli connection delete 連接名 # 刪除指定網(wǎng)絡(luò)連接
nmcli radio wifi on/off # 開啟/關(guān)閉WiFi
nmcli device wifi list # 掃描附近WiFi
nmcli device wifi connect "WiFi名" password "密碼" # 連接WiFi
nmcli connection reload # 重載網(wǎng)絡(luò)配置
systemctl restart NetworkManager # 重啟NetworkManager服務(wù)
總結(jié):
- 核心高頻命令:nmcli connection show/up/down(查看 / 啟停連接)、nmcli device status(查網(wǎng)卡狀態(tài));
- 配置類核心:靜態(tài) IP 創(chuàng)建、IP/DHCP 修改是運(yùn)維最常用的配置操作;
- 生效關(guān)鍵:修改配置后需執(zhí)行 nmcli connection up/down 或重啟 NetworkManager 才能生效。