nmcli 是 Linux 系统中管理 NetworkManager 服务的核心命令行工具,支持网络连接的配置、监控与故障排查。以下是其核心使用方法和最佳实践:
一、基础命令与网络状态查看
查看网络设备与连接状态
nmcli device status # 显示所有网络设备及其状态(如是否连接、类型等)
nmcli connection show # 列出所有网络连接的详细信息(包括名称、UUID、类型)
nmcli connection show --active# 仅显示当前活动的连接
复制
nmcli device show <设备名> # 查看指定设备的属性(如IP、MAC地址、物理连接状态)
nmcli device wifi list # 列出可用的Wi-Fi网络(需无线设备支持)
复制

二、网络连接配置与管理
配置静态IP(以太网示例)
# 创建新连接并设置静态IP
nmcli con add type ethernet con-name "static-eth0" ifname eth0 ipv4.method manual \
ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8
# 激活连接
nmcli con up "static-eth0"
复制
nmcli con modify "dhcp-eth0" ipv4.method auto # 修改为自动获取IP
nmcli con down "dhcp-eth0" && nmcli con up "dhcp-eth0" # 重启连接生效
复制
nmcli device wifi connect "SSID" password "密码" # 连接指定Wi-Fi
nmcli device disconnect wlan0 # 断开无线设备
复制
三、高级功能与多连接管理
多连接优先级与自动切换
nmcli connection modify "eth0-backup" connection.autoconnect yes # 设置自动连接
nmcli connection modify "eth0-primary" connection.autoconnect-priority 100 # 设置优先级
复制
创建VLAN与虚拟接口
nmcli con add type vlan con-name vlan10 dev eth0 id 10 # 基于eth0创建VLAN 10
复制
网络配置持久化与重载
nmcli connection reload # 重新加载配置文件(修改后无需重启服务)
systemctl restart NetworkManager # 重启NetworkManager服务(极端情况使用)
复制
四、故障排查与日志分析
实时监控与日志查看
nmcli monitor # 实时监控网络连接状态变化
journalctl -u NetworkManager # 查看NetworkManager日志
复制
常见问题处理
IP冲突或无法连接:
nmcli con down "eth0" && nmcli con up "eth0" # 重启连接
复制
DNS解析失败:
nmcli con modify "eth0" ipv4.dns "8.8.8.8 114.114.114.114" # 手动指定DNS
复制
五、最佳实践与安全建议
权限与配置文件管理
确保私钥文件权限为 600,配置文件目录权限为 700。
使用 UUID 替代设备名引用连接,避免硬件变动导致配置失效。
网络分层与自动化
生产环境中优先使用静态IP,开发环境可依赖DHCP。
结合脚本实现网络配置自动化(如使用 -t 参数输出简洁格式)。
常用命令对比速查表
场景 | 命令示例 |
---|---|
nmcli device status | |
nmcli con add type ethernet ... ipv4.method manual | |
nmcli device wifi connect "SSID" password "密码" | |
nmcli con modify eth0 ipv4.dns "8.8.8.8" | |
nmcli con modify eth0 connection.autoconnect-priority 100 |
无线网络相关命令:
# 列出附近的 Wi-Fi 网络:
nmcli device wifi list
# 连接到 Wi-Fi 网络:
nmcli device wifi connect SSID_or_BSSID password password
# 连接到隐藏的 Wi-Fi 网络:
nmcli device wifi connect SSID_or_BSSID password password hidden yes
# 在wlan1 网络接口上连接 Wi-Fi 网络:
nmcli device wifi connect SSID_or_BSSID password password ifname wlan1 profile_name
# 断开特定接口的连接:
nmcli device disconnect ifname wlan1
# 关闭 Wi-Fi:
nmcli radio wifi off
复制
更多高级功能(如VPN配置、网络流量监控)可使用 man nmcli 查看详细参数
文章转载自老柴杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。