出自https://segmentfault.com/a/1190000011579147
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-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
退出工具。