如何在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連線。

更新於:2023年7月26日

2K+ 次檢視

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.