wpa_supplicant是一个连接、配置WIFI的工具,它主要包含wpa_supplicant与wpa_cli两个程序。通常情况下,可以通过wpa_cli来进行WIFI的配置与连接,如果有特殊的需要,可以编写应用程序直接调用wpa_supplicant的接口直接开发。
启动wpa_supplicant应用
1
   | $ wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B
   | 
 
/etc/wpa_supplicant.conf文件里,添加下面代码:
1
   | ctrl_interface=/var/run/wpa_supplicant update_config=1
   | 
 
启动wpa_cli应用
1 2 3
   | $ wpa_cli -i wlan0 scan  $ wpa_cli -i wlan0 scan_result  $ wpa_cli -i wlan0 add_network 
   | 
 
如果要连接加密方式是[WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS] (wpa加密),wifi名称是name,wifi密码是:psk。
1 2 3
   | $ 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。
1 2 3 4
   | $ 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。
1 2 3
   | $ 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
1
   | $ udhcpc -i wlan0 -s /etc/udhcpc.script -q
   | 
 
执行完毕,就可以连接网络了。
保存连接
1
   | $ wpa_cli -i wlan0 save_config
   | 
 
断开连接
1
   | $ wpa_cli -i wlan0 disable_network 0
   | 
 
连接已有的连接
1 2 3
   | $ wpa_cli -i wlan0 list_network  $ wpa_cli -i wlan0 select_network 0  $ wpa_cli -i wlan0 enable_network 0 
   | 
 
断开wifi
1 2 3
   | $ ifconfig wlan0 down  $ killall udhcpc  $ killall wpa_supplicant
   | 
 
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退出工具。