发布时间:2026/7/22 18:41:12
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参数获取机器可读的输出方便脚本处理。对于需要频繁切换不同网络环境的用户建议为每个场所创建独立的连接配置并通过优先级设置实现自动切换。

相关新闻

2026/7/22 18:38:50

Ubuntu 24.04 LTS下btrfs子卷配置与优化指南

1. Ubuntu 24.04 LTS与btrfs子卷配置实战最近在全新安装Ubuntu 24.04 LTS时选择了btrfs文件系统,并尝试配置子卷(subvolumes)结构。这个组合在实际使用中展现出不少独特优势,但也遇到了一些意料之外的问题。下面我将详细记录整个配…

2026/7/21 6:09:41

深入解析ELF文件格式:结构、工具与安全实践

1. ELF文件格式概述ELF(Executable and Linkable Format)是Linux系统中最常见的可执行文件格式标准。我第一次接触ELF文件是在调试一个崩溃的C程序时,当时用objdump反汇编查看崩溃点附近的指令,从此对这种文件格式产生了浓厚兴趣。…

2026/7/21 6:09:41

74HC595驱动多位数码管的嵌入式系统设计

1. 项目概述 在嵌入式系统开发中,数码管显示是最基础也最常用的输出方式之一。但直接驱动数码管会占用大量IO口资源,这在IO口有限的单片机系统中尤为棘手。最近我在一个工业控制项目中,就遇到了需要驱动多位数码管但IO口不足的情况。经过多种…

2026/7/22 18:40:02

HarmonyOS应用开发实战:萌宠日记 - 时间轴筛选与排序功能

HarmonyOS应用开发实战:萌宠日记 - 时间轴筛选与排序功能 前言 筛选与排序 是时间轴列表的进阶功能,它帮助用户按 不同维度 查看成长事件。在 萌宠日记 的 GrowthTimelinePage 中,顶部有一个 筛选按钮(▽)&#xff0c…

2026/7/22 18:40:02

【Python毕业设计】个性化新闻订阅与智能采集服务平台 多源网络新闻爬虫聚合与推送系统(源码+文档+远程调试,全bao定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/22 18:40:02

HarmonyOS应用开发实战:萌宠日记 - 相册分类标签栏设计

HarmonyOS应用开发实战:萌宠日记 - 相册分类标签栏设计 前言 相册分类标签栏 是 萌宠日记 相册页的顶部导航组件,它将照片按 全部、日常、成长、旅行、其他 五个分类进行组织。用户通过点击标签切换照片分类,选中标签使用 加粗 深色文字 高…

2026/7/22 18:40:02

ROFL-Player:英雄联盟回放文件解析与播放的完整技术实现

ROFL-Player:英雄联盟回放文件解析与播放的完整技术实现 【免费下载链接】ROFL-Player (No longer supported) One stop shop utility for viewing League of Legends replays! 项目地址: https://gitcode.com/gh_mirrors/ro/ROFL-Player ROFL-Player是一款专…

2026/7/22 18:40:02

TI芯片UART/IrDA/CIR寄存器深度解析与实战避坑指南

1. 项目概述与核心价值搞嵌入式开发,尤其是涉及到设备间通信的,UART(通用异步收发传输器)绝对是绕不开的一道坎。它看起来简单,两根线(TX和RX)就能通信,但真想把它调得又快又稳&…

2026/7/22 9:29:13

Unity与Python本地通信:基于Flask的跨语言数据交换实战

1. 项目概述:为什么我们需要一个本地通信服务器?在游戏开发、数字孪生、仿真训练等众多领域,Unity作为强大的实时3D内容创作平台,其核心逻辑通常由C#驱动。然而,当我们需要进行复杂的数据分析、机器学习推理、科学计算…

2026/7/22 0:02:17

抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具

抓包代理链路下的 TLS 指纹变化分析:为什么调试环境会影响访问结果 摘要 在网页调试、接口联调、自动化巡检和授权采集排查中,抓包是常见手段。但很多开发者会遇到一个现象:正常访问页面时没有问题,一进入抓包或代理调试环境&…

2026/7/22 0:02:17

微信QQ聊天记录误删恢复与备份方案全指南

1. 聊天记录误删的常见场景与恢复思路作为一名长期关注数据安全的技术博主,我处理过上百起聊天记录误删的求助案例。手机误操作、系统升级失败、设备损坏是三大常见诱因。上周就遇到用户更新微信时断电,导致近两年的工作群聊记录全部消失的极端案例。不同…

2026/7/22 0:02:17

2026最新8款个人AI编程免费工具深度实测

作为一名全栈独立开发者,我最近半年一直在折腾副业项目,每个月在AI编程工具上的订阅费算下来其实也不算便宜。作为个人开发者,我们追求的就是用最少的成本获得最高效的开发体验。TRAE 基础版免费,字节跳动出品的国内首款 AI 原生 …

2026/7/21 20:02:44

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…