如何使用 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)、通道、速率、信号强度、条数和安全类型。在此示例中,您的计算机当前连接到具有 WPA2 安全性的名为“MyWiFiNetwork”的网络,同时还检测到其他两个网络:具有 WPA1/WPA2 安全性的“OtherWiFiNetwork”和不具有安全性的“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 wlp3s0
此命令列出系统上所有已保存的网络连接及其名称、UUID、类型和设备。在此示例中,有两个 Wi-Fi 网络连接和一个有线连接。
要删除已保存的 Wi-Fi 连接,请运行以下命令 -
nmcli connection delete <connection-name>
这是此命令的终端输出的示例 -
$ nmcli connection delete MyWifiConnection
Connection 'MyWifiConnection' (94e863e8-41dc-4e63-bb02-27cf8c1fcbe0) successfully deleted.
在此示例中,我们将删除名为 MyWifiConnection 的 Wi-Fi 连接,终端输出确认该连接已成功删除。输出还包括已删除连接的连接 ID (94e863e8-41dc-4e63-bb02-27cf8c1fcbe0)。
将
结论
总而言之,在Linux终端使用Nmcli命令连接Wi-Fi网络是一种有效且便捷的上网方式。通过遵循本文中概述的说明,您可以轻松扫描可访问的 Wi-Fi 网络、选择所需的网络并有效管理您的 Wi-Fi 连接。