wpa_cli命令行工具使用——用于Linux命令行连接WiFi
前言
- wpa_cli工作的前提就是wpa_supplicant要在后台正常运行——可以通过ps、pgrep等Linux命令行工具查看后台进程是否有wpa_supplicant。
- 运行wpa_supplicant——
wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
,如果/etc/wpa_supplicant.conf文件里面已经配置保存了WiFi名称与密码,那命令执行完成后会成功连接WiFi。
一、运行wpa_cli,进行终端交互使用
- 终端执行wpa_cli,进入交互模式,如下图:
- 输入status——显示当前wlan0的连接状态,连接成功会看到Wifi密码、名称等系列信息;连接不成功会显示。
- 输入scan——扫描WiFi。等待返回OK;再执行scan_results,查看WiFi扫描结果。
- 输入list_networks——列出/etc/wpa_supplicant.conf文件里的配置保存网络,并可以看到配置文件里的WiFi网络当前状态(有没有处于当前连接)、所分配的网络ID数字。
- 连接WiFi步骤:
#1、输入:add_network——会返回一个ID数字,下面会用到
#2、输入:set_network <ID> ssid "WiFi名称"
#3、输入:set_network <ID> psk "WiFi密码"
#4、输入:enable_network <ID>——尝试连接使能为ID配置的网络
#5、输入:save_config——保存当前配置到/etc/wpa_supplicant.conf文件里
- 断开WiFi:
#输入:disable_network <ID>——禁用指定的网络
#输入:disconnect——断开当前连接的网络
- 重连WiFi:
#输入:reassociate——尝试重新连接当前配置的网络。
#输入:reconfigure——让 wpa_supplicant 重新加载配置文件并尝试连接
- 输入quit——退出wpa_cli交互模式
二、wpa_cli命令行非交互模式使用
代码示例:
#cmd:status、scan、scan_results、list_networks...
>>wpa_cli -i wlan0 <cmd>
总结
- 简单罗列一下最常用的几种命令,后续有其他命令再添加上…
- 我的开发板(
buildroot系统
)在wpa_supplicant
启动之前,需要先使用ifconfig wlan0 down
和ifconfig eth0 down
关闭wlan0、eth0网卡,这样wpa_supplicant
在启动后(自动打开wlan0网卡)才成功连接WiFi并配置上ip地址。