Wifi

如何使用 wpa_cli 連接到開放的 wifi 網路?

  • August 18, 2021

我無法使用 wpa_cli 連接到開放的 wifi 網路。我正在嘗試通過以下方式連接到開放的 wifi 網路:

$ sudo wpa_cli -i wlp3s0
> add_network
0
> set_network 0 ssid "Guest"
> enable_network 0

當我嘗試啟用網路時,有時它只是回复 OK,然後什麼也沒有。幾次,我看到它回復如下:

<3>CTRL-EVENT-SCAN-STARTED
<3>CTRL-EVENT-SCAN-RESULTS
<3>WPS-AP-AVAILABLE
<3>CTRL-EVENT-NETWORK-NOT-FOUND

wpa_cli 對受密碼保護的網路沒有任何問題。

通常要連接到網路需要使用一些身份驗證機制。這由 wpa_supplicant 的key_mgmt變數在其他設置中處理:

# key_mgmt: list of accepted authenticated key management protocols
# WPA-PSK = WPA pre-shared key (this requires 'psk' field)
# WPA-EAP = WPA using EAP authentication
# IEEE8021X = IEEE 802.1X using EAP authentication and (optionally) dynamically
# generated WEP keys
# NONE = WPA is not used; plaintext or static WEP could be used
[...]
# If not set, this defaults to: WPA-PSK WPA-EAP

連接到開放的SSID 意味著不使用任何身份驗證或密碼:必須將參數從預設更改NONE為如上所述(明文情況)。

在啟用(使用)網路之前,可以通過wpa_cli命令動態設置此值,就像許多其他值一樣:

> help set_network
commands:
 set_network <network id> <variable> <value> = set network variables (shows
   list of variables when run without arguments)

此命令應在之前插入enable_network

set_network 0 key_mgmt NONE

範例執行可能如下所示:

# wpa_cli -i wlp3s0
wpa_cli v2.9
[...]
Interactive mode

> add_network
0
> set_network 0 ssid "Guest"
> set_network 0 key_mgmt NONE
> enable_network 0
OK
<3>SME: Trying to authenticate with 12:34:56:78:9a:bc (SSID='Guest' freq=2437 MHz)
<3>Trying to associate with 12:34:56:78:9a:bc (SSID='Guest' freq=2437 MHz)
<3>Associated with 12:34:56:78:9a:bc
<3>CTRL-EVENT-CONNECTED - Connection to 12:34:56:78:9a:bc completed [id=0 id_str=]
<3>CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
[...]

引用自:https://unix.stackexchange.com/questions/665107