# Linux中nmcli命令怎么用
## 1. nmcli簡介
`nmcli`是NetworkManager的命令行管理工具,用于在Linux系統中配置和管理網絡連接。作為NetworkManager的組成部分,它提供了一種強大而靈活的方式來控制網絡設置,無需依賴圖形界面。
### 1.1 NetworkManager概述
NetworkManager是Linux系統中主流的網絡配置守護進程,具有以下特點:
- 動態網絡管理能力
- 支持有線、無線、VPN等多種連接類型
- 提供D-Bus接口供其他程序調用
- 自動處理網絡切換和配置
### 1.2 nmcli的優勢
相比傳統的網絡配置工具,nmcli具有明顯優勢:
- **統一管理**:整合多種網絡類型的配置
- **腳本友好**:適合自動化部署和遠程管理
- **實時生效**:修改配置無需重啟服務
- **豐富功能**:支持連接、設備、DNS等全面管理
## 2. 基本命令結構
nmcli命令采用模塊化設計,基本語法為:
```bash
nmcli [OPTIONS] OBJECT { COMMAND | help }
general:NetworkManager常規狀態和操作networking:整體網絡功能控制radio:無線網絡射頻開關connection:網絡連接配置管理device:物理網絡設備管理monitor:實時監控網絡活動-t:簡潔輸出(適合腳本處理)-p:友好格式輸出(帶標題和分隔符)-h:獲取幫助信息-v:顯示命令版本顯示所有配置的連接:
nmcli connection show
激活狀態的連接會顯示ACTIVE標志,輸出包含:
- 連接名稱
- UUID(唯一標識符)
- 連接類型
- 關聯設備
獲取特定連接的詳細信息:
nmcli connection show <連接名或UUID>
示例查看有線連接:
nmcli connection show 'Wired connection 1'
激活已有連接:
nmcli connection up <連接名>
停止活動連接:
nmcli connection down <連接名>
nmcli connection add type ethernet \
con-name "Office-LAN" \
ifname eth0 \
ipv4.method manual \
ipv4.addresses 192.168.1.100/24 \
ipv4.gateway 192.168.1.1 \
ipv4.dns "8.8.8.8 8.8.4.4"
nmcli device wifi connect <SSID> password <密碼>
或創建持久化配置:
nmcli connection add type wifi \
con-name "Home-WiFi" \
ifname wlan0 \
ssid "Home-Network" \
wifi-sec.psk "mypassword" \
wifi-sec.key-mgmt wpa-psk
修改IP地址配置:
nmcli connection modify "Office-LAN" \
ipv4.addresses "192.168.1.150/24"
更改DNS服務器:
nmcli connection modify "Office-LAN" \
ipv4.dns "208.67.222.222 208.67.220.220"
刪除不再需要的配置:
nmcli connection delete "Old-Connection"
列出所有網絡設備:
nmcli device status
輸出信息包括: - 設備名稱 - 設備類型 - 狀態(connected/disconnected) - 關聯的連接
查看特定設備的詳細信息:
nmcli device show eth0
將設備關聯到已有連接:
nmcli device connect eth0
臨時禁用網絡設備:
nmcli device disconnect wlan0
掃描周圍WiFi網絡:
nmcli device wifi list
連接無需認證的WiFi:
nmcli device wifi connect <SSID>
連接WPA/WPA2加密網絡:
nmcli device wifi connect <SSID> password <密碼>
查看已保存的WiFi密碼:
nmcli -s connection show "WiFi-Connection" | grep psk
查看無線射頻狀態:
nmcli radio wifi
禁用WiFi射頻:
nmcli radio wifi off
監控網絡狀態變化:
nmcli monitor
按Ctrl+C退出監控模式
測試連接是否活躍:
nmcli networking connectivity check
返回結果包括:
- full:完全聯網
- limited:受限連接
- none:無連接
重載NetworkManager配置:
nmcli connection reload
配置VLAN虛擬接口:
nmcli connection add type vlan \
con-name "VLAN-10" \
ifname eth0.10 \
dev eth0 \
id 10 \
ipv4.method auto
創建網絡綁定(bonding):
nmcli connection add type bond \
con-name "bond0" \
ifname bond0 \
mode active-backup
nmcli connection add type bond-slave \
ifname eth1 \
master bond0
nmcli connection add type bond-slave \
ifname eth2 \
master bond0
添加永久靜態路由:
nmcli connection modify "Office-LAN" \
+ipv4.routes "10.0.0.0/8 192.168.1.254"
設置IPv6地址和網關:
nmcli connection modify "Office-LAN" \
ipv6.method manual \
ipv6.addresses "2001:db8::a/64" \
ipv6.gateway "2001:db8::1" \
ipv6.dns "2001:4860:4860::8888"
檢查NetworkManager服務狀態:
systemctl status NetworkManager
查看詳細日志:
journalctl -u NetworkManager -n 50
刪除所有自定義連接:
nmcli connection delete $(nmcli -t -f NAME connection)
重啟NetworkManager:
systemctl restart NetworkManager
清空DNS緩存:
sudo systemd-resolve --flush-caches
臨時覆蓋系統DNS:
nmcli connection modify "Office-LAN" \
ipv4.ignore-auto-dns yes \
ipv4.dns "1.1.1.1 9.9.9.9"
典型辦公室網絡設置:
# 創建VLAN接口
nmcli connection add type vlan \
con-name "Corp-VLAN20" \
ifname eth0.20 \
dev eth0 \
id 20 \
ipv4.method manual \
ipv4.addresses "10.20.0.10/24" \
ipv4.gateway "10.20.0.1" \
ipv4.dns "10.10.0.53 10.10.0.54"
# 激活連接
nmcli connection up "Corp-VLAN20"
自動切換家庭和辦公室網絡:
#!/bin/bash
CURRENT_SSID=$(nmcli -t -f active,ssid dev wifi | grep '^yes' | cut -d: -f2)
if [[ "$CURRENT_SSID" == "Home-WiFi" ]]; then
nmcli connection up "Office-VPN"
elif [[ "$CURRENT_SSID" == "Office-WiFi" ]]; then
nmcli connection down "Office-VPN"
fi
nmcli作為NetworkManager的命令行界面,提供了強大而靈活的網絡管理能力。通過本文的介紹,您應該已經掌握:
建議在實際環境中多加練習,結合man nmcli查閱完整手冊,逐步掌握這個現代化網絡管理工具的全部功能。
注意:不同Linux發行版的NetworkManager版本可能略有差異,部分新功能需要較新版本支持。使用前請確認您的系統版本:
nmcli --version“`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。