Ubuntu终端使用nmcli管理WiFi连接全指南

发布时间:2026/7/21 6:09:39
Ubuntu终端使用nmcli管理WiFi连接全指南 1. Ubuntu终端管理WiFi的必要性与场景在服务器运维、远程调试或图形界面崩溃的情况下通过终端管理WiFi连接是Linux系统管理员的必备技能。nmcli作为NetworkManager的命令行工具提供了比图形界面更强大的控制能力特别适合以下场景无GUI的服务器环境Ubuntu Server版默认没有图形界面自动化脚本编写批量配置多台设备的网络参数网络故障排查当图形界面网络管理器崩溃时远程SSH管理通过命令行调整网络配置注意Ubuntu 18.04及以上版本默认已安装NetworkManager无需额外安装。如果系统使用ifupdown网络管理工具需要先安装NetworkManagersudo apt install network-manager2. nmcli基础环境准备2.1 检查网络管理服务状态首先确认NetworkManager服务正常运行systemctl status NetworkManager正常状态应显示active (running)。如果未运行使用以下命令启动sudo systemctl start NetworkManager sudo systemctl enable NetworkManager # 设置开机自启2.2 查看网络设备列表获取当前网络接口信息nmcli device status典型输出示例DEVICE TYPE STATE CONNECTION wlan0 wifi disconnected -- eth0 ethernet unmanaged -- lo loopback unmanaged --这里wlan0就是无线网卡设备名不同机器可能为wlp3s0等名称2.3 启用WiFi射频确保无线网卡射频已开启nmcli radio wifi on检查射频状态nmcli radio wifi显示enabled表示已启用3. WiFi扫描与连接实战3.1 扫描周边无线网络执行扫描并列出可用网络nmcli device wifi list输出示例IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY HomeWiFi Infra 6 130 Mbit/s 85 ▂▄▆█ WPA2 Office_Guest Infra 11 270 Mbit/s 72 ▂▄▆_ WPA2 CoffeeShop_Free Infra 1 195 Mbit/s 45 ▂▄__ --技巧添加--rescan yes参数强制刷新扫描结果nmcli device wifi list --rescan yes3.2 连接开放网络对于无密码的开放网络nmcli device wifi connect CoffeeShop_Free3.3 连接WPA/WPA2加密网络需要指定密码的连接方式nmcli device wifi connect HomeWiFi password your_password连接成功后会自动创建并激活一个连接配置档案3.4 连接隐藏网络连接不广播SSID的网络需要额外参数nmcli device wifi connect HiddenNet password secret hidden yes3.5 指定网卡连接当系统有多个无线网卡时需指定接口nmcli device wifi connect Office_WiFi password 12345678 ifname wlan04. 连接配置档案管理4.1 查看所有保存的连接nmcli connection show输出示例NAME UUID TYPE DEVICE HomeWiFi a5bd53c7-875f-45a1-b3e5-2f8a1e8d5f1e wifi wlan0 Wired connection 1 6a5f8d1e-2b3c-4d5e-6f7a-8b9c0d1e2f3g ethernet --4.2 查看连接详细信息nmcli connection show HomeWiFi会显示IP地址、DNS、路由等完整配置信息4.3 修改现有连接配置更改WiFi密码nmcli connection modify HomeWiFi wifi-sec.psk new_password添加静态DNSnmcli connection modify HomeWiFi ipv4.dns 8.8.8.8 8.8.4.44.4 手动激活/停用连接激活已有配置nmcli connection up HomeWiFi断开连接nmcli connection down HomeWiFi4.5 删除保存的配置nmcli connection delete Old_WiFi5. 高级配置技巧5.1 设置静态IP地址nmcli connection modify HomeWiFi \ ipv4.method manual \ ipv4.addresses 192.168.1.100/24 \ ipv4.gateway 192.168.1.1 \ ipv4.dns 8.8.8.8然后重新激活连接nmcli connection down HomeWiFi nmcli connection up HomeWiFi5.2 创建新的连接配置不立即连接的配置创建nmcli connection add \ type wifi \ con-name OfficeBackup \ ssid Office_WiFi \ wifi-sec.key-mgmt wpa-psk \ wifi-sec.psk office_password5.3 配置自动连接优先级当多个网络可用时设置优先级数字越大优先级越高nmcli connection modify HomeWiFi connection.autoconnect-priority 10 nmcli connection modify Office_WiFi connection.autoconnect-priority 56. 常见问题排查6.1 WiFi连接失败检查NetworkManager日志journalctl -u NetworkManager -f尝试重新扫描网络nmcli device wifi rescan6.2 设备未被NetworkManager管理检查设备管理状态nmcli device show wlan0 | grep managed如果显示unmanaged需要启用管理nmcli device set wlan0 managed yes6.3 忘记保存的WiFi密码查看已保存密码sudo cat /etc/NetworkManager/system-connections/HomeWiFi.nmconnection | grep psk6.4 信号弱频繁断开查看信号强度nmcli device wifi list考虑添加信号阈值配置nmcli connection modify HomeWiFi wifi.cloned-mac-address permanent wifi.mac-address-randomization 17. 自动化脚本示例7.1 自动连接最强信号脚本#!/bin/bash # auto_connect.sh # 获取信号最强的SSID BEST_SSID$(nmcli -t -f SSID,SIGNAL device wifi list | sort -t: -k2 -nr | head -1 | cut -d: -f1) # 检查是否已连接 CURRENT_SSID$(nmcli -t -f GENERAL.CONNECTION device show wlan0 | cut -d: -f2) if [ $CURRENT_SSID ! $BEST_SSID ]; then echo 正在连接最佳网络: $BEST_SSID nmcli device wifi connect $BEST_SSID else echo 已连接最佳网络: $BEST_SSID fi7.2 WiFi断线自动重连#!/bin/bash # wifi_watchdog.sh CONNECTIONHomeWiFi TEST_HOST8.8.8.8 while true; do if ! ping -c 1 -W 5 $TEST_HOST /dev/null; then echo $(date): 网络断开尝试重连... nmcli connection down $CONNECTION sleep 2 nmcli connection up $CONNECTION fi sleep 60 done在实际使用中发现nmcli的稳定性比图形界面网络管理器更高特别是在服务器环境中。一个实用的技巧是使用nmcli -t参数获取机器可读的输出方便脚本处理。对于需要频繁切换不同网络环境的用户建议为每个场所创建独立的连接配置并通过优先级设置实现自动切换。