如何在Linux终端使用Nmcli命令连接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 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)。
将<connection-name>替换为您要删除的Wi-Fi连接的名称。
结论
总之,使用Nmcli命令从Linux终端连接到Wi-Fi网络是一种有效且快捷的联网方式。通过遵循本文中概述的说明,您可以轻松扫描可用的Wi-Fi网络,选择所需的网络,并熟练地管理您的Wi-Fi连接。