参考:wpa_cli_with_wpa_supplicant.pdf
wpa_supplicant是一个连接、配置WIFI的工具,它主要包含wpa_supplicant与wpa_cli两个程序,pa_supplicant是核心程序,它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supplicant,使用wpa_cli来搜索、设置、和连接网络.
1.启动wpa_supplicant应用:
wpa_supplicant -Dnl80211 -c /etc/wpa_supplicant.conf -i wlan0 -B
-D 驱动程序名称(指定WiFi驱动程序:nl80211,wext)
-i 接口名称
-c 配置文件
-B 在后台运行守护进程
-d = increase debugging verbosity (-dd even more)
不支持82011用法:
wpa_supplicant -D wext -c /etc/wpa_supplicant.conf -i wlan0 &
2.启动wpa_cli
wpa_cli -i wlan0 scan //搜索附件wifi热点
wpa_cli -i wlan0 scan_result //显示搜索wifi热点
wpa_cli -i wlan0 status //当前WPA/EAPOL/EAP通讯状态
wpa_cli -i wlan0 ping //pings wpa_supplicant
添加新的连接
wpa_cli -i wlan0 add_network //添加一个网络连接,会返回<network id>
wpa_cli set_network <network id> ssid '"name"' //ssid名称
wpa_cli set_network <network id> psk '“psk”' //密码
wpa_cli set_network <network id> scan_ssid 1
wpa_cli set_network <network id> priority 1 //优先级
保存连接
wpa_cli -i wlan0 save_config //信息保存到默认的配置文件中
连接已有连接
wpa_cli -i wlan0 list_network //列举保存过得连接
wpa_cli -i wlan0 select_network <network id> //连接指定的ssid
save_config之后的wpa_supplicant.conf文件示例:
ctrl_interface=/var/run/wpa_supplicant/
ap_scan=1
network={
scan_ssid=1
ssid="xxxx"
psk="xxxx"
priority=2 //启动WiFi自动连接?
}