折腾网络这件事,有时候比修电脑还玄学。
前几天测试家里的网络,顺手重置了一下路由器。结果没想到,懒猫微服的 Wi-Fi 设置也跟着丢了。
打开网络设置一看,满屏都是邻居家的热点,就是没有我自己的。

没关系,懒猫毕竟是 Linux 系统,只要能够 开启 SSH,命令行就是万能钥匙。反正有分层文件系统,真要捣鼓坏了,重启也能恢复。
这次的主角是 nmcli,全称 NetworkManager Command Line Interface,它是 Linux 自带的网络管理命令行工具。 通俗点说,它是前端界面的“幕后操控者”——我们在图形界面上点击的“网络连接”“Wi-Fi 设置”,其实都在底层调用它。
有了 nmcli,我们几乎可以用命令完成所有网络操作:
| 功能 | 命令示例 |
|---|---|
| 列出可用 Wi-Fi 热点 | nmcli device wifi list |
| 连接 Wi-Fi | nmcli device wifi connect "SSID" password "12345678" |
| 查看当前网络状态 | nmcli connection show --active |
| 启用/禁用网卡 | nmcli device set wlan0 managed yes/no |
| 断开网络连接 | nmcli connection down id "MyWiFi" |
扫描 Wi-Fi
先 SSH 登录懒猫微服,直接使用 nmcli 扫描周边的 Wi-Fi:
bash
nmcli device wifi list这条命令会列出当前设备能检测到的所有 Wi-Fi 热点。 果然,我的 Wi-Fi 就静静地躺在输出列表里,只是前端页面没显示出来而已。

手动连接 Wi-Fi
既然能看到 SSID,那就直接连接:
bash
sudo nmcli device wifi connect "MyWiFi" password "12345678"几秒钟后,终端提示:
Device 'wlp129s0' successfully activated with 'xxxx-xxxx-xxxx'说明 Wi-Fi 已成功连接,懒猫顺利回到网络世界。

隐藏密码的连接方式
前面的命令会在命令行里明文显示密码。 其实 nmcli 也支持交互式连接,输入命令后系统会自动提示输入密码:
bash
sudo nmcli --ask device wifi connect "MyWiFi"这种方式既安全又方便,命令行历史不会留下明文密码。

确认连接状态
连接成功后,可以用以下命令验证当前网络状态:
bash
nmcli connection show --active输出会显示所有活跃连接,包括 Wi-Fi、以太网、Docker 桥接等:
NAME UUID TYPE DEVICE
Wired connection 1 14c5aa14-82e5-33f6-be2b-04c6de5bfe58 ethernet enp2s0
GL-MT3600BE-236-5G 1 a2b7d70d-09f5-459f-9903-dd140b1e0d33 wifi wlp129s0
回到懒猫网络设置页面,就能看到熟悉的 Wi-Fi 已经连接上啦。

一键断开 Wi-Fi(真·命令行版)
想断开连接也很简单,只要执行:
bash
nmcli connection down id "GL-MT3600BE-236-5G 1"系统会返回:
Connection 'GL-MT3600BE-236-5G 1' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/17)轻松优雅,不需要点来点去。

