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使用相关推荐

  1. 深入理解 wpa_supplicant(四)

    本文为<深入理解Android Wi-Fi.NFC和GPS卷>读书笔记,Android源码为Android 5.1 android-5.1/external/wpa_supplicant_ ...

  2. 深入理解 wpa_supplicant(三)

    本文为<深入理解Android Wi-Fi.NFC和GPS卷>读书笔记,Android源码为Android 5.1 android-5.1/external/wpa_supplicant_ ...

  3. 深入理解 wpa_supplicant(二)

    本文为<深入理解Android Wi-Fi.NFC和GPS卷>读书笔记,Android源码为Android 5.1 struct wpa_global * wpa_supplicant_i ...

  4. 深入理解 wpa_supplicant(一)

    本文为<深入理解Android Wi-Fi.NFC和GPS卷>读书笔记,Android源码为Android 5.1 wpa_supplicant 是一个开源软件项目,它实现了 Statio ...

  5. wpa_supplicant学习

    2019独角兽企业重金招聘Python工程师标准>>> interface  gtk  makefile  wrapper  buffer  methods 目录(?)[-] 本来以 ...

  6. linux 失败模式,在Linux中在AP模式下扫描失败(wpa_supplicant)

    我正在使用wpa_supplicant创建一个访问点: wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant_ap.conf 问题是当在接 ...

  7. linux 无线网络配置工具wpa_supplicant与wireless-tools

    内容: 介绍 WPA Supplicant Wireless Tools 针对每个ESSID的网络配置 4.a. 介绍 目前您可以使用我们提供的wireless-tools 或wpa_supplica ...

  8. wpa_supplicant drivers 查看跟踪

    /***************************************************************************** wpa_supplicant driver ...

  9. android wlan0 网卡过程,android WIFI网络驱动之wpa_supplicant程序详解

    http://blog.csdn.net/wh_19910525/article/details/7392147 2012 目前可以使用wireless-tools 或wpa_supplicant工具 ...

  10. wpa_supplicant与kernel的接口

    2019独角兽企业重金招聘Python工程师标准>>> 1. 接口定义实现wpa_drivers wpa_drivers的定义如下: [cpp] view plaincopy str ...

最新文章

  1. Linux下SSH命令使用方法详解
  2. 利用LED+LDR组成可控组件搭建的振荡电路
  3. 为什么Java需要lambda 表达式?
  4. java集合根据值排序_Java 8:对集合中的值进行排序
  5. 牛客网-数据结构笔试题目(五)-动态规划问题求解
  6. js-cookie使用方法
  7. JavaWeb——EL表达式
  8. php中curl的详细解说 【转载】
  9. 中国临床数据分析市场趋势报告、技术动态创新及市场预测
  10. python mysql 循环语句怎么写_用于mysql语句的Python循环
  11. Codeforces Round #567 (Div. 2)
  12. 通过UltraISO,写入ISO镜像,制作U盘启动盘
  13. arduino教程【实战篇】
  14. php怎么启动服务,如何打开php服务
  15. 在线CUR格式转换器
  16. ASP.NET 利用Outlook发送邮件
  17. 文件分割与合并(Java)
  18. 区块链大繁荣背后:我们需要引入「预言机」| 专访DOS团队
  19. git解决fatal: unable to access ‘https://gitee.com/XXX.git/‘: The requested returned error: 403
  20. 国产软件很流氓?不,这些国产软件良心且实用,别让它们寒心

热门文章

  1. docker 安装oracle11g 并配置数据持久化
  2. SCM供应链管理系统实施困难及解决方案
  3. uni-app开发环境配置
  4. 微软九月份安全补丁提前通知
  5. 电力电子仿真-plecs3.6.1安装包
  6. 海康威视 java B/S 开发 流程
  7. Ubuntu 20.04美化及QQ、微信、ssh客户端安装
  8. 118页/8万字重磅(附下载)| 全球智能网联汽车产业深度报告:未来已来 掘金智能网联汽车时代【华西汽车 崔琰团队】
  9. 写论文与PPT汇报时matlab图片的背景透明处理
  10. JSP基本元素(菜鸟教程)