「Linux」- 使用NetworkManager連接Wi-Fi熱點 @20210330


我的系統是CentOS 7.5,最小化安裝的,所以沒有圖形化界面,沒有辦法通過網線接入路由設備,要聯網只能接入無線熱點。

連接無線熱點可以使用WAP Supplicant工具,也可以使用NetworkManager工具,還有一些其他的工具。

本文主要介紹NetworkManager來連接無線熱點的方法。之所以使用它,是因為NetworkManager管理網絡及其方便。

#1 安裝「NetworkManager-wifi」插件

尷尬就尷尬在這里,都沒有聯網,怎么安裝呢?反正就那么幾種辦法:

	* 方法一、在設備上使用WPA Supplicant工具包先連接到無線。
	* 方法二、把設備接到筆記本,然后筆記本的無線和有線橋接,但是STATION MODE下的無線網卡無法橋接。
	* 方法三、下載離線包,復制到設置上使用RPM手動安裝。
	* 可能開有其他的方法……

很顯然「方法一」,對於我來說,是最便捷的。所以,我先使用wpa_supplicant(8)進行無線連接,這里不展開介紹,可以參考「with WPA Supplicant」一文。注意,使用wpa_supplicant(8)只是臨時連接無線熱點,“臨時”不是不能連接熱點,因為它不太適用於網絡的管理,在管理方面不如NetworkManager靈活。所以即使連接上了網絡,也只是臨時使用以下,最終還是使用NetworkManager進行連接。

然后,執行yum install -y NetworkManager-wifi來安裝插件。實際上我執行了yum install -y NetworkManager*來安裝了所有的插件,以防還需要其他的插件或進行其他的網絡配置。

重啟NetworkManager服務來加載插件:systemctl restart NetworkManager.service

如果不安裝該插件,控制台會輸出Error: no device found for connection 'wlan0'。執行journactl -f -u NetworkManager命令查看日志,會發現錯誤(wlan0): 'wifi' plugin not available; creating generic device,即缺少了NetworkManager-wifi插件。

#2 查看設備狀態

執行命令nmcli device查看設備狀態。在正常情況下,看到的輸出如下:

# nmcli device
DEVICE  TYPE      STATE         CONNECTION
wlan0   wifi      disconnected  --
lo      loopback  unmanaged     --

但是在有些情況下,無線網卡wlan0出於ummanaged狀態。如下所示:

# nmcli device
DEVICE  TYPE      STATE         CONNECTION
wlan0   wifi      unmanaged  	--
lo      loopback  unmanaged     --

無線網卡wlan0處於unmanaged狀態,這表示此設備不被Networkmanager管理。因此執行如下命令,讓NetworkManager管理此設備:

nmcli dev set wlan0 managed yes

讓NetworkManger管理此網卡。參考「Ethernet device not managed」一文。

如果有些設備不需要被NetworkManager管理,則可以使用nmcli命令或修改配置文件。配置文件的修改參考NetworkManager.conf手冊中的unmanaged-devices指令。

#3 掃描無線熱點

使用nmcli device wifi list命令來掃描熱點。如下示例:

# nmcli device wifi list
 SSID                  MODE   CHAN  RATE       SIGNAL  BARS  SECURITY
   xmstro-805            Infra  1     54 Mbit/s  64      ▂▄▆_  WPA1 WPA2
   CMCC-kxH9             Infra  6     54 Mbit/s  59      ▂▄▆_  WPA1 WPA2
   ChinaNet-ZmAv         Infra  9     54 Mbit/s  49      ▂▄__  WPA1

#4 連接無線熱點(關鍵步驟)

執行nmcli device wifi connect "SSID-Name" password "your password"命令連接無線熱點。如下示例:

# nmcli device wifi connect "xmstro-805" password "8001801881"
Device 'wlan0' successfully activated with 'f858dc0b-0912-4b18-8630-5d88992b65a5'.

#5 查看連接狀態

使用nmcli connection show命令查看連接狀態。如下示例:

# nmcli connection show
NAME          UUID                                  TYPE             DEVICE
xmstro-805    f858dc0b-0912-4b18-8630-5d88992b65a5  802-11-wireless  wlan0

emmmmm...就這么連上了。IP地址也是自動分配的,不需要手動設置。

## 其他設置方法

或者你可以使用老方法(我使用了這種方法,因為可設置更多的信息):

nmcli c add type wifi con-name "<name>" ifname "wlan0" ssid "<ssid>"

nmcli c modify <name> wifi-sec.key-mgmt wpa-psk wifi-sec.psk "<password>"

nmcli c up "<name>"

相關文章

「Linux」- 使用WPA Supplicant連接無線熱點

參考文獻

Connect to a wireless network using command line nmcli
How to connect to wifi using nmcli?
How can I find out what plugin is missing in nmcli?



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM