如何使用 Nmcli 命令从 Linux 终端连接 Wi-Fi?
如果您是 Linux 用户,并且希望从终端连接 Wi-Fi 网络。虽然这看起来很复杂,但使用 Nmcli 命令其实很简单。在本文中,我将以简单易懂的方式向您介绍使用 Nmcli 命令从 Linux 终端连接 Wi-Fi 的步骤。那就让我们开始吧!
首先,如果我们想查看网络设备的名称,只需运行以下命令即可:
$ iw dev
运行以下命令即可获得类似输出: −
phy#0
Interface wlan0
ifindex 3
wdev 0x1
addr 12:34:56:78:9a:bc
ssid MyWiFiNetwork
type managed
channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz
txpower 20.00 dBm
在本例中,名称为 wlan0。请考虑您将获得什么。
接下来,我们将检查网络设备的状态,看看它是否已连接到 WI-Fi。为此,请运行以下命令 -
iw wlan0 link
您将获得如下所示的设备状态 -
Not connected.
在进一步研究之前,需要注意的是,并非所有 Linux 发行版都预装了 Nmcli 命令。如果您的系统尚未安装该命令,可以使用软件包管理器进行安装。例如,在基于 Ubuntu 或 Debian 的系统上,您可以通过在终端中运行以下命令来安装 Nmcli:−
sudo apt-get install network-manager
运行上述命令安装 nmcli 时,您将获得类似以下内容的终端输出:−
Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libnma0 libteamdctl0 network-manager-config-connectivity-ubuntu network-manager-gnome Suggested packages: policykit-1-gnome The following NEW packages will be installed: libnma0 libteamdctl0 network-manager network-manager-config-connectivity-ubuntu network-manager-gnome 0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded. Need to get 2,793 kB of archives. After this operation, 11.1 MB of additional disk space will be used. Do you want to continue? [Y/n]
安装 Nmcli 后,即可使用它连接 Wi-Fi 网络。请仔细遵循以下说明!
步骤 1:扫描 Wi-Fi 网络
连接 Wi-Fi 网络之前,您需要知道其名称 (SSID)。您可以使用 Nmcli 命令扫描可用的 Wi-Fi 网络,方法是在终端中运行以下命令:−
nmcli device wifi list
运行此命令后,您将获得如下输出:−
IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
MyWiFiNetwork Infra 6 54 Mbit/s 80 ▂▄▆_ WPA2
OtherWiFiNetwork Infra 11 54 Mbit/s 70 ▂▄__ WPA1 WPA2
PublicWiFi Infra 1 54 Mbit/s 50 ▂▄__ --
此输出列出了您的计算机可以检测到的所有 Wi-Fi 网络,以及它们的 SSID(网络名称)、模式(基础架构或 Ad-Hoc)、信道、速率、信号强度、信号格数和安全类型。在此示例中,您的计算机当前连接到名为"MyWiFiNetwork"且采用 WPA2 安全性的网络,同时还检测到另外两个网络:"OtherWiFiNetwork"(采用 WPA1/WPA2 安全性)和"PublicWiFi"(无安全性)。
或者
如果您不想使用 nmcli 命令扫描 Wi-Fi 网络,也可以借助 sudo 执行相同的操作。为此,命令如下:−
sudo iw wlan0 scan
运行此命令,您将获得以下输出:−
BSS 00:11:22:33:44:55 (on wlan0) freq: 2462 beacon interval: 100 TUs capability: ESS Privacy ShortPreamble ShortSlotTime (0x0431) signal: -56.00 dBm last seen: 204 ms ago SSID: example_network DS Parameter set: channel 11 RSN: * Version: 1 * Group cipher: CCMP * Pairwise ciphers: CCMP * Authentication suites: PSK * Capabilities: 16-PTKSA-RC 1-GTKSA-RC (0x000c) HT capabilities: Capabilities: 0x11ac HT20/HT40 SM Power Save disabled RX Greenfield RX HT20 SGI RX HT40 SGI TX STBC RX STBC 1-stream Max AMSDU length: 3839 bytes No DSSS/CCK HT40 HT operation: Primary channel: 11 Secondary channel offset: no secondary HT40: disabled SSID Length: 14 SSID: example_network BSS 66:77:88:99:aa:bb (on wlan0) freq: 2412 beacon interval: 100 TUs capability: ESS Privacy ShortPreamble ShortSlotTime (0x0431) signal: -72.00 dBm last seen: 456 ms ago SSID: another_network DS Parameter set: channel 1 HT capabilities: Capabilities: 0x11ac HT20/HT40 SM Power Save disabled RX Greenfield RX HT20 SGI RX HT40 SGI TX STBC RX STBC 1-stream Max AMSDU length: 3839 bytes No DSSS/CCK HT40 HT operation: Primary channel: 1 Secondary channel offset: no secondary HT40: disabled SSID Length: 15 SSID: another_network
需要注意的是,此处显示的输出仅为示例,您在自己的系统上看到的输出可能会因具体的 Wi-Fi 硬件和系统配置而异。
步骤 2:连接到 Wi-Fi 网络
获取要连接的 Wi-Fi 网络的 SSID 后,即可使用 Nmcli 命令进行连接。在终端中运行以下命令:
nmcli device wifi connect <SSID>
运行此命令后,您将获得以下输出
$ nmcli device wifi connect MyWiFiNetwork Device 'wlan0' successfully activated with 'd0:53:49:67:8a:16'.
在本例中,我们正在与 SSID 为"MyWiFiNetwork"的 Wi-Fi 网络建立连接。为此,nmcli 命令使用 wlan0 设备连接到网络。成功连接到网络后,该命令会提供反馈,确认设备已激活,并显示其唯一的 MAC 地址,在本例中为 d0:53:49:67:8a:16。请记住,您看到的具体输出可能因您的具体系统和网络设置而异。
步骤 3:管理 Wi-Fi 连接
使用 Nmcli 连接到 Wi-Fi 网络后,您可以使用以下命令管理您的连接:−
要断开当前 Wi-Fi 网络,请运行以下命令:−
nmcli device disconnect
以下是输出:−
如果您之前已连接到网络,则输出将类似于以下内容:−
Device 'wlan0' successfully disconnected.
如果您之前未连接到网络,输出将类似于以下内容 -
Error: No active connection or device found.
此输出表示没有可断开的活动网络连接,或者
要查看您已连接的所有 Wi-Fi 网络列表,请运行以下命令 -
nmcli connection show
以下是输出 -
NAME UUID TYPE DEVICE Wired connection 1 12345678-9abc-def0-1234-56789abcdef0 ethernet enp0s25 Wi-Fi network 1 12345678-9abc-def0-1234-56789abcdef1 wifi wlp3s0 Wi-Fi network 2 12345678-9abc-def0-1234-56789abcdef2 wifi wlp3s0v
$ nmcli connection delete MyWifiConnection Connection 'MyWifiConnection' (94e863e8-41dc-4e63-bb02-27cf8c1fcbe0) successfully deleted.
在本例中,我们删除了一个名为 MyWifiConnection 的 Wi-Fi 连接,终端输出确认该连接已成功删除。输出还包含已删除连接的连接 ID (94e863e8-41dc-4e63-bb02-27cf8c1fcbe0)。
将 <connection-name> 替换为您要删除的 Wi-Fi 连接的名称。
结论
总而言之,使用 Nmcli 命令从 Linux 终端连接到 Wi-Fi 网络是一种高效便捷的上网方式。按照本文中的说明操作,您可以轻松扫描可用的 Wi-Fi 网络,选择所需的网络,并高效地管理您的 Wi-Fi 连接。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

