介绍
在这个实验(Lab)中,你将学习如何在 Linux 系统上通过命令行管理无线网络连接的基础知识。我们将使用 nmcli,它是 NetworkManager 的命令行接口。NetworkManager 是大多数现代 Linux 发行版上的标准服务,它简化了网络配置。使用 nmcli,你无需图形用户界面(GUI)即可扫描网络、连接、断开连接以及管理连接配置文件。
本实验将指导你完成控制无线连接所需的基本命令,这是任何 Linux 管理员或高级用户的关键技能。我们将在一个模拟环境中工作,但这些命令和概念可以直接应用于配备无线网卡的真实 Linux 机器上。请注意,虽然我们可以模拟一个无线设备,但此环境没有真实的 Wi-Fi 网络可供连接。这意味着一些与建立活动连接相关的命令将无法完全成功,但你仍然会学到完整的操作流程。
使用 nmcli device wifi list 命令扫描网络
在这一步,你将学习如何扫描可用的无线网络。这是你通常尝试连接到新 Wi-Fi 网络时会执行的第一项操作。nmcli 工具提供了一个简单的命令来列出所有可见的 Wi-Fi 接入点(Access Point)。
首先,让我们确定你的无线设备的名称。运行以下命令:
nmcli device
你应该会看到一个类型为 wifi 的设备。该设备名称很可能是 wlan0。我们将在后续步骤中使用这个名称。你的输出可能还会显示额外的网络设备,如 eth0 或 docker0。这是正常的。本实验中重要的设备是类型为 wifi 的那个,我们假设它就是 wlan0。
DEVICE TYPE STATE CONNECTION
wlan0 wifi disconnected --
p2p-dev-wlan0 wifi-p2p disconnected --
docker0 bridge unmanaged --
eth0 ethernet unmanaged --
lo loopback unmanaged --
现在,使用 nmcli device wifi list 命令来执行扫描。此命令指示 NetworkManager 搜索附近的无线网络并以列表形式显示它们。
在你的终端中执行该命令:
nmcli device wifi list
在具有物理 Wi-Fi 卡的真实环境中,你会看到周围网络的列表。在我们的模拟环境中,由于没有真实的 Wi-Fi 网络,输出将是空的。下面是一个示例,展示了如果检测到网络,输出会是什么样子。它显示了网络的 SSID(名称)、信号强度、安全类型和其他详细信息。
IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
MyHomeWiFi Infra 6 130 Mbit/s 80 ▂▄▆█ WPA2
AnotherNetwork Infra 11 54 Mbit/s 55 ▂▄▆_ WPA2
Public-Hotspot Infra 1 54 Mbit/s 30 ▂▄__ --
此命令对于发现你可以连接的网络至关重要。
创建并尝试激活 Wi-Fi 连接
在这一步,我们将连接到一个无线网络。标准的命令是 nmcli device wifi connect。然而,由于我们处于一个没有真实网络可供连接的模拟环境中,此命令将会失败。
作为替代,我们将使用一种同样重要的方法:创建并激活一个 NetworkManager 连接配置文件(profile)。这种方法对于预先配置网络连接非常有用。我们将为名为 MyLabWiFi 的假设网络创建一个配置文件。请记住使用你在上一步中找到的 Wi-Fi 设备名称,它很可能是 wlan0。
首先,创建一个新的连接配置文件。此命令定义了连接所需的所有必要设置。
sudo nmcli connection add type wifi con-name MyLabConnection ifname wlan0 ssid MyLabWiFi
你将看到一条确认信息:
Connection 'MyLabConnection' (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) successfully added.
配置文件创建后,你可以尝试激活它。这等同于连接到该网络。
sudo nmcli connection up MyLabConnection
此命令将尝试连接到 MyLabWiFi 网络。由于该网络在我们的模拟环境中实际上不存在,该命令将无法建立连接。它看起来会卡住或持续尝试连接。这是预期的行为。等待几秒钟后,按 Ctrl+C 停止该命令。
你现在已经学会了如何创建连接配置文件以及如何尝试激活它。在真实环境中,如果存在可用的 Wi-Fi 网络,此命令将会成功连接你。
使用 nmcli connection show 命令验证连接
在这一步,你将学习如何验证你的网络状态并查看已配置的连接配置文件(profile)。在尝试连接后,检查状态是一个很好的实践。
nmcli connection show 命令会列出你系统上保存的所有连接配置文件,无论它们当前是否处于活动状态。
运行该命令以查看所有配置文件:
nmcli connection show
你的输出应该包含我们在上一步中创建的 MyLabConnection 配置文件,以及它的 UUID 和类型。由于连接当前未激活,DEVICE 列将是空的。
NAME UUID TYPE DEVICE
MyLabConnection xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx wifi --
要仅查看当前活动的连接,你可以添加 --active 标志。这对于快速检查你当前的 network status 非常有用。
nmcli connection show --active
由于我们在上一步中尝试连接的尝试未能成功,此命令将不会产生任何输出。这证实了当前没有活动的连接。
此命令是你快速检查网络连接状态的首选工具。
删除连接配置文件
在这一步,你将学习如何删除一个你不再需要的连接配置文件(profile)。这是一个常见的清理任务。由于我们未能激活连接,所以无法断开连接。相反,我们将删除我们创建的配置文件。
要删除 MyLabConnection 配置文件,请使用 nmcli connection delete 命令,后跟连接名称。
执行以下命令:
sudo nmcli connection delete MyLabConnection
你将看到连接已成功删除的确认信息。
Connection 'MyLabConnection' successfully deleted.
为了确认,你可以再次运行 nmcli connection show。你将看到 MyLabConnection 不再出现在列表中。
nmcli connection show
此命令现在应该不产生任何输出(或者只显示其他预先存在的连接),确认该配置文件已被移除。
理解依赖于连接的命令
在最后一步中,我们将讨论那些依赖于活动网络连接的命令,例如 speedtest-cli。在前面的步骤中,我们已经确定在这个模拟环境中我们无法建立活动的 Wi-Fi 连接。
让我们尝试运行 speedtest-cli 来看看在没有连接的情况下会发生什么。该工具已在实验设置期间为你安装。
在你的终端中运行该命令:
speedtest-cli
该工具将尝试连接到 speed test 服务器并失败。你将看到一条错误消息,指示存在配置或网络问题。这是预期的,因为我们模拟的 wlan0 设备没有连接到互联网。
在现实世界场景中,如果你成功连接到网络,该工具会自动找到最佳服务器,测试你的下载和上传速度,并打印结果。输出将如下所示(数值会有所不同):
Retrieving speedtest.net configuration...
Testing from ...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by ... [x.xx ms]: ...
Testing download speed...
Download: 95.32 Mbit/s
Testing upload speed...
Upload: 88.14 Mbit/s
这一步展示了在使用需要互联网访问的工具之前,验证你的连接状态的重要性。
总结
恭喜你完成了本次实验!你已经学会了使用 nmcli 在 Linux 系统上管理无线连接的基本命令。
在本次实验中,你在模拟环境中练习了无线网络管理的完整工作流程:
- 使用
nmcli device wifi list扫描网络。 - 使用
nmcli connection add和nmcli connection up创建并尝试激活连接配置文件。 - 使用
nmcli connection show验证连接状态。 - 使用
nmcli connection delete删除连接配置文件。 - 理解依赖于连接的工具(如
speedtest-cli)的要求。
这些技能是管理 Linux 服务器和桌面的基础,尤其是在你依赖命令行(command line)的环境中。你现在更有能力在各种情况下处理网络配置了。



