我的系統是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?
