圍紀實驗室

wpa_cli & wpa_supplicant[]

在 Ubuntu 11.04 須做 這個網頁上寫的修改,才能使 wpa_cli 可以和 wpa_supplicant 通訊。
修改完後,要 reboot Ubuntu OS,然後就可以用這個網頁講的wpa_cli command line了:

sudo wpa_cli -p /var/run/wpa_supplicant -i wlan0 <command ...>


以下是我用 VIA Epia 連接公司光世代 VDSL modem (SSID="hi") 的命令:

sudo wpa_cli -p /var/run/wpa_supplicant -i wlan6 list_networks
sudo wpa_cli add_network
sudo wpa_cli set_network 0 ssid '"hi"'
sudo wpa_cli set_network 0 scan_ssid 1
sudo wpa_cli set_network 0 key_mgmt WPA-PSK
sudo wpa_cli set_network 0 psk '"537xyz63"'
sudo wpa_cli enable_network 0
sudo dhclient3 wlan6
### double-check wlan settings ###
sudo wpa_cli -p /var/run/wpa_supplicant -i wlan6 list_networks
iwconfig wlan6
ifconfig wlan6


Note 1: 雖然在 Windows 7 上查看,VDSL modem 的 WiFi 加密是採用 WPA2-Personal w/ AES encryption,但wpa_cli command line 的 key_mgmt 參數仍是下 WPA-PSK:

wpa_cli set_network 0 key_mgmt WPA-PSK


Note 2: 如果把上面的 command lines 寫成 bash script, 並用 command line arguments $1 與 $3 傳 SSID 和 PSK key 的話,在 script 裡面,相對應的 command lines 要寫成:

sudo wpa_cli set_network 0 ssid '"'$1'"'
sudo wpa_cli set_network 0 psk '"'$3'"'

要注意的是:位置變數 $1 和 $3 的周圍,要用單引號包住。