nmcli 是 Linux 下 NetworkManager 的命令行网络管理工具,相比传统 ifconfig 更适合现代 Linux 系统(Ubuntu、Debian、CentOS、Fedora、Arch 等)。
一、查看网络状态
| 命令 | 说明 |
|---|---|
nmcli general status | 查看网络整体状态 |
nmcli device status | 查看所有网卡状态 |
nmcli device show | 查看所有网卡详细信息 |
nmcli device show <网卡名> | 查看指定网卡详细信息 |
示例:查看网卡状态
bash
nmcli device status输出:
text
DEVICE TYPE STATE CONNECTION
ens33 ethernet connected Wired connection 1
wlan0 wifi disconnected --二、WiFi 管理
2.1 开关与扫描
| 命令 | 说明 |
|---|---|
nmcli radio wifi on | 开启 WiFi |
nmcli radio wifi off | 关闭 WiFi |
nmcli dev wifi | 扫描附近 WiFi(简写) |
nmcli device wifi list | 扫描附近 WiFi(完整) |
2.2 连接与断开
| 场景 | 命令 |
|---|---|
| 连接开放 WiFi | nmcli dev wifi connect "SSID" |
| 连接加密 WiFi | nmcli dev wifi connect "SSID" password "密码" |
| 连接隐藏 WiFi | nmcli dev wifi connect "SSID" password "密码" hidden yes |
| 断开指定网卡 | nmcli device disconnect wlan0 |
示例:连接 WiFi
bash
nmcli dev wifi connect "HomeWiFi" password "12345678"2.3 管理已保存的 WiFi
| 命令 | 说明 |
|---|---|
nmcli con show | 查看所有已保存的连接 |
nmcli con delete "WiFi名称" | 删除已保存的连接 |
三、有线网络管理
| 命令 | 说明 |
|---|---|
nmcli con show | 查看所有连接配置 |
nmcli con up "连接名" | 启动指定连接 |
nmcli con down "连接名" | 关闭指定连接 |
示例:
bash
nmcli con up "Wired connection 1"
nmcli con down "Wired connection 1"四、IP 与 DNS 配置
注意: 修改配置后需执行
nmcli con up <连接名>才能生效。
4.1 静态 IP 配置
bash
# 设置 IP 和子网掩码
nmcli con mod <连接名> ipv4.addresses 192.168.1.100/24
# 设置网关
nmcli con mod <连接名> ipv4.gateway 192.168.1.1
# 设置 DNS(多个用空格分隔)
nmcli con mod <连接名> ipv4.dns "8.8.8.8 1.1.1.1"
# 切换为静态 IP 模式
nmcli con mod <连接名> ipv4.method manual
# 重新连接生效
nmcli con up <连接名>4.2 DHCP 配置
bash
# 切换为自动获取 IP
nmcli con mod <连接名> ipv4.method auto
nmcli con up <连接名>4.3 查看 DNS
bash
nmcli dev show | grep DNS五、网络总开关与热点
| 命令 | 说明 |
|---|---|
nmcli networking off | 关闭所有网络 |
nmcli networking on | 开启所有网络 |
nmcli device wifi hotspot ifname wlan0 ssid MyAP password 12345678 | 创建 WiFi 热点 |
六、常见问题排查
6.1 WiFi 扫描不到
bash
# 检查是否被软禁用
rfkill list
# 解除禁用
sudo rfkill unblock wifi6.2 修改 IP 后不生效
bash
nmcli con down <连接名>
nmcli con up <连接名>6.3 device not managed
编辑 /etc/NetworkManager/NetworkManager.conf,确保:
ini
[ifupdown]
managed=true然后重启服务:
bash
sudo systemctl restart NetworkManager七、最常用命令速查表
bash
# ===== 状态查看 =====
nmcli general status # 网络状态
nmcli device status # 网卡状态
nmcli dev show | grep DNS # 查看 DNS
# ===== WiFi 操作 =====
nmcli radio wifi on # 开 WiFi
nmcli radio wifi off # 关 WiFi
nmcli dev wifi # 扫描 WiFi
nmcli dev wifi connect "SSID" password "密码" # 连 WiFi
nmcli device disconnect wlan0 # 断 WiFi
# ===== 连接管理 =====
nmcli con show # 查看连接
nmcli con up/down <名称> # 启停连接
nmcli con delete <名称> # 删除连接
# ===== IP 配置 =====
nmcli con mod <名> ipv4.addresses 192.168.1.100/24
nmcli con mod <名> ipv4.gateway 192.168.1.1
nmcli con mod <名> ipv4.dns "8.8.8.8"
nmcli con mod <名> ipv4.method manual # 静态
nmcli con mod <名> ipv4.method auto # DHCP
# ===== 热点 =====
nmcli device wifi hotspot ifname wlan0 ssid MyAP password 12345678提示: 日常最常用的是 WiFi 管理、IP 配置、DNS 修改 和 网络重连 这四部分,建议重点掌握。
text