官網: http://w1.fi/wpa_supplicant/
wpa_supplicant是一個連接、配置WIFI的工具,它主要包含wpa_supplicant與wpa_cli兩個程序。通常情況下,可以通過wpa_cli來進行WIFI的配置與連接,如果有特殊的需要,可以編寫應用程序直接調用wpa_supplicant的接口直接開發。
啟動wpa_supplicant應用
$ wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B
/etc/wpa_supplicant.conf文件里,添加下面代碼:
ctrl_interface=/var/run/wpa_supplicant
update_config=1
啟動wpa_cli應用
$ wpa_cli -i wlan0 scan // 搜索附近wifi網絡
$ wpa_cli -i wlan0 scan_result // 打印搜索wifi網絡結果
$ wpa_cli -i wlan0 add_network // 添加一個網絡連接
$ wpa_cli -i wlan0 remove_network 1 // 刪除一個網絡連接
如果要連接加密方式是[WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS] (wpa加密),wifi名稱是name,wifi密碼是:psk。
$ wpa_cli -i wlan0 set_network 0 ssid '"name"'
$ wpa_cli -i wlan0 set_network 0 psk '"psk"'
$ wpa_cli -i wlan0 enable_network 0
如果要連接加密方式是[WEP][ESS] (wep加密),wifi名稱是name,wifi密碼是psk。
$ wpa_cli -i wlan0 set_network 0 ssid '"name"'
$ wpa_cli -i wlan0 set_network 0 key_mgmt NONE
$ wpa_cli -i wlan0 set_network 0 wep_key0 '"psk"'
$ wpa_cli -i wlan0 enable_network 0
如果要連接加密方式是[ESS] (無加密),wifi名稱是name。
$ wpa_cli -i wlan0 set_network 0 ssid '"name"'
$ wpa_cli -i wlan0 set_network 0 key_mgmt NONE
$ wpa_cli -i wlan0 enable_network 0
分配ip/netmask/gateway/dns
$ udhcpc -i wlan0 -s /etc/udhcpc.script -q
執行完畢,就可以連接網絡了。
保存連接
$ wpa_cli -i wlan0 save_config
斷開連接
$ wpa_cli -i wlan0 disable_network 0
連接已有的連接
$ wpa_cli -i wlan0 list_network 列舉所有保存的連接
$ wpa_cli -i wlan0 select_network 0 連接第1個保存的連接
$ wpa_cli -i wlan0 enable_network 0 使能第1個保存的連接
斷開wifi
$ ifconfig wlan0 down
$ killall udhcpc
$ killall wpa_supplicant
wpa_wifi_tool使用方法
wpa_wifi_tool是基於wpa_supplicant及wpa_cli的一個用於快速設置wifi的工具,方便調試時連接wifi使用。使用方法:1、運行wpa_wifi_tool;2、輸入help進行命令查看;3、s進行SSID掃描;4、c[n]進行wifi連接,連接時若為新的SSID則需輸入密碼,若為已保存的SSID則可以使用保存過的密碼或者重新輸入密碼;5、e退出工具。
參考鏈接:https://segmentfault.com/a/1190000011579147?utm_source=tag-newest
