配置无线连接

LinuxBeginner
立即练习

介绍

在这个实验(Lab)中,你将学习如何在 Linux 系统上通过命令行管理无线网络连接的基础知识。我们将使用 nmcli,它是 NetworkManager 的命令行接口。NetworkManager 是大多数现代 Linux 发行版上的标准服务,它简化了网络配置。使用 nmcli,你无需图形用户界面(GUI)即可扫描网络、连接、断开连接以及管理连接配置文件。

本实验将指导你完成控制无线连接所需的基本命令,这是任何 Linux 管理员或高级用户的关键技能。我们将在一个模拟环境中工作,但这些命令和概念可以直接应用于配备无线网卡的真实 Linux 机器上。请注意,虽然我们可以模拟一个无线设备,但此环境没有真实的 Wi-Fi 网络可供连接。这意味着一些与建立活动连接相关的命令将无法完全成功,但你仍然会学到完整的操作流程。

这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 初级 级别的实验,完成率为 97%。获得了学习者 100% 的好评率。

使用 nmcli device wifi list 命令扫描网络

在这一步,你将学习如何扫描可用的无线网络。这是你通常尝试连接到新 Wi-Fi 网络时会执行的第一项操作。nmcli 工具提供了一个简单的命令来列出所有可见的 Wi-Fi 接入点(Access Point)。

首先,让我们确定你的无线设备的名称。运行以下命令:

nmcli device

你应该会看到一个类型为 wifi 的设备。该设备名称很可能是 wlan0。我们将在后续步骤中使用这个名称。你的输出可能还会显示额外的网络设备,如 eth0docker0。这是正常的。本实验中重要的设备是类型为 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 addnmcli connection up 创建并尝试激活连接配置文件
  • 使用 nmcli connection show 验证连接状态
  • 使用 nmcli connection delete 删除连接配置文件
  • 理解依赖于连接的工具(如 speedtest-cli)的要求。

这些技能是管理 Linux 服务器和桌面的基础,尤其是在你依赖命令行(command line)的环境中。你现在更有能力在各种情况下处理网络配置了。