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=xxxxxxxxx37bca5cf24a345f514d319211822f568bba28f8f0b74c894e7644proto=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={undefinedssid="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=1ssid="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
wpa_supplicant 常用操作及其wpa_cli无法运行的原因Could not connect to wpa_supplicant相关推荐
- wpa_supplicant 常用操作
wpa_supplicant是一个连接.配置WIFI的工具,它主要包含wpa_supplicant与wpa_cli两个程序. 可以通过wpa_cli来进行WIFI的配置与连接,前提要保证wpa_sup ...
- TensorFlow常用操作:代码示例
1,定义矩阵代码示例: import tensorflow as tftf.zeros([3,4]) #定义3行4列元素均为0的矩阵tensor=tf.constant([1,2,3,4])#定义一维 ...
- Ubuntu 常用操作
Ubuntu常用操作 外观操作 修改应用icon图标 终端美化 内存管理 内存查询 分区管理 日志清理 操作执行 自动执行多条命令 外观操作 修改应用icon图标 在/usr/share/applic ...
- IOS沙盒Files目录说明和常用操作
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...
- mysql数据导库常用操作
工作中经常遇到:一个数据库导入新的数据库实例中,或者一个数据库中的某些表导入新的数据库中,常用操作,总结一下. 部分数据表导入新库 单表导入新库的sql为 # CREATE TABLE 新表 SELE ...
- String常用操作,StringBuffer。
一.String类的常用操作 1.创建String字符串 String str = new String("我们爱学习"); String str1 = "我们不爱学习& ...
- MongoDB使用小结:一些常用操作分享
MongoDB使用小结:一些常用操作分享 本文整理了一年多以来我常用的MongoDB操作,涉及mongo-shell.pymongo,既有运维层面也有应用层面,内容有浅有深,这也就是我从零到熟练的历程 ...
- docker 删除所有未启动的容器_Docker 镜像容器常用操作(让我们用 docker 溜得飞起)...
推荐阅读: 面试字节跳动三轮凉凉,内推4面终拿下抖音offer(Java后台研发)zhuanlan.zhihu.com 一线架构师Spring boot 学习笔记:我的成长全记在这份PDF文档里z ...
- python序列类型-什么是序列,Python序列详解(包括序列类型和常用操作)
所谓序列,指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们. 为了更形象的认识序列,可以将它看做是一家旅店,那么店中的每个房间就如同序列存储数 ...
最新文章
- Nestjs OpenAPI(Swagger)
- 变量可以通过into赋值
- 【数字信号处理】离散时间系统 ( 离散时间系统概念 | 线性时不变系统 LTI - Linear time-invariant )
- stepinto stepout stepover的区别
- lia人是什么意思_狗狗喜欢舔人到底什么意思?毛孩的心思主人你要懂
- stm32 SPI、FLASH
- minio 搭建blob
- 01 Angular
- myeclipse中文界面改颜色_“颜色识别器”安卓APP功能详细介绍
- brew update:以下未跟踪的工作树文件将被合并覆盖:
- 如何使用maven打包
- POI导出excel加水印
- go语言中的try、catch、throw实现
- dell r510服务器怎么装系统,DellR510安装系统.docx
- linux deb文件安装
- 光纤工程的,光纤熔接,光纤测试
- 【sdx62】通过代码直接修改控制gpio实例
- 华为推出“换皮肤”服务
- mavros连接px4失败的usb-ttl原因
- 梦幻西游其他服务器显示重名,梦幻西游转区重名怎么办?梦幻西游转区重名改名要钱吗?...
热门文章
- B2C电子商务网站运营推广的优化技巧
- 解决执行`sudo apt-get install`命令出现`Could not get lock`错误
- Java高级-Lambda 表达式、异常处理、集合、泛型、List集合、Map集合、Collections类
- 黑莓将入华,服务费用不菲
- java formula one 用法_使用Formula One生成Excel报表-
- 基于BSN的财智联盟链在财税金融领域的应用
- MATLAB利用QQ图检验总体是否服从多维正态分布
- mysql binlog 过滤表_mysql日志恢复指定表【从binlog日志过滤恢复指定数据表】
- 利用最小堆完成有理数的类定义以及有理数逻辑运算
- 你不可不知的网站:stackoverflow