wpa_supplicant使用
1.wpa_supplicant简介
wpa_supplicant是一个连接、配置WIFI的工具,它主要包含wpa_supplicant与wpa_cli两个程序。wpa_supplicant是服务端,wap_cli是客户端,一般情况下使用wpa_cli就可以操作WiFi。但是它不支持所有的驱动,可以浏览wpa_supplicant网站获得它所支持的驱动列表。另外,wpa_supplicant目前只能连接到那些你已经配置好SSID的无线网络,也就是使用前需要配置好wpa_supplicant的配置文件wpa_supplicant.conf
看下wpa_supplicant的help信息
[root@eufy /oem]$ wpa_supplicant -help
wpa_supplicant v2.6
usage:wpa_supplicant [-BddhKLqqtvW] [-P<pid file>] [-g<global ctrl>] \[-G<group>] \-i<ifname> -c<config file> [-C<ctrl>] [-D<driver>] [-p<driver_param>] \[-b<br_ifname>] [-e<entropy file>] [-f<debug file>] \[-o<override driver>] [-O<override ctrl>] \[-N -i<ifname> -c<conf> [-C<ctrl>] [-D<driver>] \[-p<driver_param>] [-b<br_ifname>] [-I<config file>] ...]drivers:nl80211 = Linux nl80211/cfg80211wext = Linux wireless extensions (generic)wired = Wired Ethernet driver
options:-b = optional bridge interface name-B = run daemon in the background-c = Configuration file-C = ctrl_interface parameter (only used if -c is not)-d = increase debugging verbosity (-dd even more)-D = driver name (can be multiple drivers: nl80211,wext)-e = entropy file-f = log output to debug file instead of stdout-g = global ctrl_interface-G = global ctrl_interface group-h = show this help text-i = interface name-I = additional configuration file-K = include keys (passwords, etc.) in debug output-L = show license (BSD)-M = start describing new matching interface-N = start describing new interface-o = override driver parameter for new interfaces-O = override ctrl_interface parameter for new interfaces-p = driver parameters-P = PID file-q = decrease debugging verbosity (-qq even less)-t = include timestamp in debug messages-v = show version-W = wait for a control interface monitor before starting
example:wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf
选项详解
选项 | 说明 |
---|---|
-b | optional bridge interface name 增加网桥名称 |
-B | run daemon in the background后台执行 |
-c | Configuration file 附加配置文件,即根据配置文件执行操作 |
-C | ctrl_interface parameter (only used if -c is not) 控制网口参数 |
-i | interface name 设定操作的网口 |
-d | increase debugging verbosity (-dd even more)增加调试信息输出 |
-D | driver name (can be multiple drivers: nl80211,wext) 驱动名称 |
-g | global ctrl_interface 全局网口配置 |
-K | include keys (passwords, etc.) in debug output 在debug输出中包含keys |
-t | include timestamp in debug messages 将各个debug信息前输出时间标签 |
-h | show this help text显示帮助信息 |
-L | show license (GPL and BSD) 显示license |
-o | override driver parameter for new interfaces 覆盖driver参数 |
-O | override ctrl_interface parameter for new interfaces 覆盖ctrl_interface参数 |
-p | driver parameters 携带驱动参数 |
-P | PID file进程文件 |
-q | decrease debugging verbosity (-qq even less)在debug 中不输出指定参数 |
-v | show version 显示版本信息 |
-W | wait for a control interface monitor before starting 启动前等待控制接口 |
-N | start describing new interface 启动对新接口的描述 |
-f | log output to debug file instead of stdout log的输出文件 |
wpa_supplicant配置文件编写
wpa_supplicant配置文件wpa_supplicant.conf的可配置选项太多,先了解下常用的配置项。看个例子:
cat wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
network={scan_ssid=1ssid="mr112"psk="123456789"key_mgmt=WPA-PSK
}
配置项 | 说明 |
---|---|
ctrl_interface | 默认的也是推荐使用的存放套接字的目录,wpa_cli将会在尝试和wpa_supplicant连接时使用它 |
ap_scan | 接入点的扫描和选择 |
scan_ssid | =0不扫描这个通过特定的探测请求帧得到的SSID(默认)=1扫描通过特定探测请求帧得到的SSID(这个可以用于寻找不接受广播的APs或者使用多SSIDs ;这个将会增加扫描延时时间,所以在有必要时才激活此选项) |
ssid | 无线名称 |
psk | 无线密码 |
key_mgmt | 公认的认证密钥管理协议列表,WPA-PSK 预共享密匙 (这需要‘psk’字段) |
另外,如果需要休眠唤醒功能,则加wowlan_triggers=any配置
wpa_suppcliant举例
wpa_supplicant -B -i wlan0 -c /data/cfg/wpa_supplicant.confg -f /tmp/wap.log
2.wpa_cli使用
选项 | 说明 |
---|---|
scan | 打开后扫描AP |
scan_results或scan_r | 显示扫描结果 |
status | 列出目前的联网状态。 |
list_networks | 列出所有备选网络。目前正连接到的网络会标[CURRENT],禁用的网络会标[DISABLE]。 |
add_network | 增加一个备选网络,输出新网络的号码(这个号码替代下文的[network_id])。注意新网络此时是禁用状态。 |
set_network [network_id] ssid “Your SSID” | 设置无线网的名称(SSID) |
set_network [network_id] key_mgmt WPA-PSK | 设置无线网的加密方式为WPA-PSK/WPA2-PSK |
set_network [network_id] psk “Your Password” | 设置无线网的PSK密码 |
enable_network [network_id] | 启用网络。启用后如果系统搜索到了这个网络,就会尝试连接。 |
disable_network [network_id] | 禁用网络。 |
save_config | 保存配置。 |
举例
1.搜索网络
[root@eufy /oem]$ wpa_cli scan
Selected interface 'wlan0'
OK
[root@eufy /oem]$ wpa_cli scan_result
Selected interface 'wlan0'
bssid / frequency / signal level / flags / ssid
2a:47:3d:62:21:fb 2462 -16 [WPA2-PSK-CCMP][ESS] mr112
64:6e:97:0c:c9:68 2462 -51 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS] LdRobotAp-2.4
f8:8c:21:67:6b:67 2462 -28 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] app\xe7\xbb\x84
80:ea:07:81:24:85 2462 -75 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS] YAKO_2.4G
f8:8c:21:67:6b:69 5785 -32 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] app\xe7\xbb\x84-5G
74:22:bb:89:0c:34 5180 -38 [WPA2-PSK-CCMP][ESS] WFW_5G
2c:15:e1:3d:ba:0d 5745 -37 [WPA2-PSK-CCMP][ESS] ASUS_0B_5G
48:0e:ec:8d:4f:7f 5805 -40 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] TP-LINK_4F7D
2.查看状态
[root@eufy /oem]$ wpa_cli status
Selected interface 'wlan0'
bssid=2a:47:3d:62:21:fb
freq=2462
ssid=mr112
id=0
mode=station
pairwise_cipher=CCMP
group_cipher=CCMP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
ip_address=192.168.191.5
address=20:32:33:38:32:72
源码分析
wpa_supplicant使用相关推荐
- 深入理解 wpa_supplicant(四)
本文为<深入理解Android Wi-Fi.NFC和GPS卷>读书笔记,Android源码为Android 5.1 android-5.1/external/wpa_supplicant_ ...
- 深入理解 wpa_supplicant(三)
本文为<深入理解Android Wi-Fi.NFC和GPS卷>读书笔记,Android源码为Android 5.1 android-5.1/external/wpa_supplicant_ ...
- 深入理解 wpa_supplicant(二)
本文为<深入理解Android Wi-Fi.NFC和GPS卷>读书笔记,Android源码为Android 5.1 struct wpa_global * wpa_supplicant_i ...
- 深入理解 wpa_supplicant(一)
本文为<深入理解Android Wi-Fi.NFC和GPS卷>读书笔记,Android源码为Android 5.1 wpa_supplicant 是一个开源软件项目,它实现了 Statio ...
- wpa_supplicant学习
2019独角兽企业重金招聘Python工程师标准>>> interface gtk makefile wrapper buffer methods 目录(?)[-] 本来以 ...
- linux 失败模式,在Linux中在AP模式下扫描失败(wpa_supplicant)
我正在使用wpa_supplicant创建一个访问点: wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant_ap.conf 问题是当在接 ...
- linux 无线网络配置工具wpa_supplicant与wireless-tools
内容: 介绍 WPA Supplicant Wireless Tools 针对每个ESSID的网络配置 4.a. 介绍 目前您可以使用我们提供的wireless-tools 或wpa_supplica ...
- wpa_supplicant drivers 查看跟踪
/***************************************************************************** wpa_supplicant driver ...
- android wlan0 网卡过程,android WIFI网络驱动之wpa_supplicant程序详解
http://blog.csdn.net/wh_19910525/article/details/7392147 2012 目前可以使用wireless-tools 或wpa_supplicant工具 ...
- wpa_supplicant与kernel的接口
2019独角兽企业重金招聘Python工程师标准>>> 1. 接口定义实现wpa_drivers wpa_drivers的定义如下: [cpp] view plaincopy str ...
最新文章
- Linux下SSH命令使用方法详解
- 利用LED+LDR组成可控组件搭建的振荡电路
- 为什么Java需要lambda 表达式?
- java集合根据值排序_Java 8:对集合中的值进行排序
- 牛客网-数据结构笔试题目(五)-动态规划问题求解
- js-cookie使用方法
- JavaWeb——EL表达式
- php中curl的详细解说 【转载】
- 中国临床数据分析市场趋势报告、技术动态创新及市场预测
- python mysql 循环语句怎么写_用于mysql语句的Python循环
- Codeforces Round #567 (Div. 2)
- 通过UltraISO,写入ISO镜像,制作U盘启动盘
- arduino教程【实战篇】
- php怎么启动服务,如何打开php服务
- 在线CUR格式转换器
- ASP.NET 利用Outlook发送邮件
- 文件分割与合并(Java)
- 区块链大繁荣背后:我们需要引入「预言机」| 专访DOS团队
- git解决fatal: unable to access ‘https://gitee.com/XXX.git/‘: The requested returned error: 403
- 国产软件很流氓?不,这些国产软件良心且实用,别让它们寒心