wpa_supplicant 常用操作及其wpa_cli无法运行的原因Could not connect to wpa_supplicant

简介

wpa_supplicant是一个连接、配置WiFi的工具,它主要包含wpa_supplicant与wpa_cli两个程序。 可以通过wpa_cli来进行WiFi的配置与连接,前提要保证wpa_supplicant正常启动

相当于wpa_supplicant 是服务端,wpa_cli 是客户端。

安装

wpa_supplicant 依赖于 openssl , libnl , 需要提前进行安装。安装方法ARM-Linux平台下,在上篇文章已经介绍。

1. 启动wpa_supplicant应用

wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B -d

-D 驱动程序名称(可以是多个驱动程序:nl80211,wext)
-i 网络接口名称
-c 配置文件
-B 在后台运行守护进程
-d:增加调试信息
配置文件 /etc/wpa_supplicant.conf文件里,添加下面代码:

常规连接已知WIFI填写

ctrl_interface=/var/run/wpa_supplicant  #必须配置
update_config=1 #强制更新覆盖配置 
ap_scan=1  #AP扫描(默认为0),=1是工作在nl80211的优化工作。为了寻找隐藏了的网络


network={
	ssid="userxxx" #接入点名称
	psk="passwdxxx" #接入点密码
	priority=0   #优先级组,(默认为0)优先级数值越大,就越早在扫描结果中得到匹配,如果优先级组相同,则将会根据安全规则、信号强度等来作为选择的依据。
}

加密模式下填写

ctrl_interface=/var/run/wpa_supplicant #必须配置
update_config=1  #强制更新覆盖配置 

network={
	ssid="xxxx"   #接入点名称
	scan_ssid=1    #无线接入点是隐藏可搜索连接
	#psk 是加密后的密码,用wpa_passphrase自动生成或连接已知WIFI的密码
	psk=xxxxxxxxx37bca5cf24a345f514d319211822f568bba28f8f0b74c894e7644
	proto=RSN   #支持的协议列表
	key_mgmt=WPA-PSK  #认证密钥管理协议
	pairwise=CCMP   #加密方式
	auth_alg=OPEN  #表示需开放系统身份验证
}

附注自动生成模式:

$ wpa_passphrase ESID passwd >>/etc/wpa_supplicant/wpa_supplicant.conf

or

wpa_passphrase wifiname passwd123 | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf
network={undefined
    ssid="ESID"
    #psk="passwd"
    psk=7e0c3a4dcd727cea7b4fa10f489f0b165e50240823cc0b9d570916bdb63a71af
}

(1)ctrl_interface指向的是一个目录,在这个目录中默认会生成一个文件/var/run/wpa_supplicant/wlan0,这是local socket address,相当于UNIX Domain Socket,程序和后台程序wpa_supplicant进行通信(其实是wpa_supplicant作为后台服务程序是通过本地socket和客户端进行通信的)

(2)update_config = 1时会在(客户端发送SAVE_CONFIG命令)更新这个配置文件。

(3)具体配置参数详细解释查询地址:
https://www.freebsd.org/cgi/man.cgi?wpa_supplicant.conf(5)

2.启动wpa_cli应用

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   //信息保存到默认的配置文件中,前面提到的/etc/wpa_supplicant.conf

断开连接

wpa_cli -i wlan0 disable_network <network id>  

连接已有连接

wpa_cli -i wlan0 list_network  //列举保存过得连接
wpa_cli -i wlan0 select_network  <network id>  //连接指定的ssid 
wpa_cli -i wlan0 enable_network  <network id>  //使能制定的ssid 

网络连接成功的配置文件示例

ctrl_interface=/var/run/wpa_supplicant/
ap_scan=1
network={
    scan_ssid=1
    ssid="xxxx"
    psk="xxxx"
    bssid=
    priority=2
}

wpa_cli无法运行的原因Could not connect to wpa_supplicant

必须在wpa_supplicant.conf 中的ctrl_interface添加/var/run/或者/run路径
在去启动服务。

配置wpa_supplicant.conf

update_config=1
ctrl_interface=/var/run/wpa_supplicant 

启动服务

wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路过的大熊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值