wpa_supplicant工具包含wpa_supplicant和wpa_cli这2个程序,其中wpa_supplicant程序作为服务端在后台运行,服务wpa_cli客户端的请求,从而实现WiFi的配置连接。wpa_supplicant工具支持wep、wpa、wpa2等加密认证方式。本文接下来介绍如何使用wpa_supplicant、wpa_cli这2个程序进行WiFi的配置。

一、wpa_supplicant的使用

运行wpa_supplicant,wpa_supplicant程序作为wpa_cli的服务端,必须先启动后,才能给wpa_cli访问使用。

wpa_supplicant的手册说明:

wpa_supplicant

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>] \

[-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/cfg80211

wext = 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

-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)

-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

例:

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

-D nl80211:表示驱动类型名称为nl80211

-i wlan0:表示网络接口名称为wlan0

-c /etc/wpa_supplicant.conf:表示配置文件为wpa_supplicant.conf

-B:表示将守护进程wpa_supplicant 挂到后台运行

二、wpa_cli的使用

1、wpa_cli的使用方式

wpa_supplicant作为服务端已经运行,此时再启动wpa_cli客户端,即可通过wpa_cli客户端进行网络配置的操作。

使用wpa_cli有2种方式,一种是通过进入wpa_cli控制台交互界面进行。

例:

在串口终端输入:

wpa_cli

另一种是不进入控制台交互界面,直接通过串口终端输入完整的命令。本文的WiFi配置将通过这种方式进行介绍。

例:再串口终端输入命令:

wpa_cli -i wlan0 help

注意:

-i wlan0:表示网络接口名称是wlan0。我的板子WiFi的网络接口名称是wlan0,下文将一直使用这网络接口操作。

下面我们将从使用WiFi的常用流程来介绍wpa_cli的使用。所有的命令使用介绍可以通过“wpa_cli -i wlan0 help”命令进行查看。

2、扫描周边WiFi热点

启动扫描:

wpa_cli -i wlan0 scan

注意:

scan扫描过程需要一定的时间,扫描过程中将使wpa_supplicant处于busy状态,再次发送scan扫描将失败。

查看扫描结果:

wpa_cli -i wlan0 scan_results

注意:

scan_results打印出来的是可获得的wifi的列表,列表包含WiFi热点的ssid(名称)、bssid(mac地址)、signal level(信号强度,单位dBm)、flags(加密类型)等。

可以发现,如果周边有多个热点,打印出来的WiFi列表,一个热点是一行信息,但热点排列的先后顺序不是严格按信号强度signal level(负值)由大到小排列。而且此时再开新的WiFi热点,重新scan,然后scan_results打印结果,会发现新开的WiFi热点,虽然信号强,但也是排在列表很靠后的位置。

所以如果想让WiFi热点按照信号强度由大到小排序,就要在获取到WiFi列表后,自己再根据信号强度进行降序排列,从而实现信号强的WiFi排在前面。

3、连接WiFi热点

增加一个网络id:

add_network命令会返回一个network id,后面是根据这网络编号来配置WiFi热点。

wpa_cli -i wlan0 add_network

配置WiFi热点的名称ssid:

wpa_cli -i wlan0 set_network 网络编号 ssid '"WiFi名称"'

例:

wpa_cli -i wlan0 set_network 0 ssid '"honor"'

配置WiFi热点的密码psk:

wpa_cli -i wlan0 set_network 网络编号 psk '"密码"'

例:

wpa_cli -i wlan0 set_network 0 psk '"12345678"'

查看网络列表:

wpa_cli -i wlan0 list_network

选择网络:

使用list_network命令,会打印所有已添加成功的WiFi热点,如果有多个WiFi热点,可以使用select_network命令选择使用哪个热点,可实现WiFi热点的切换。

wpa_cli -i wlan0 select_network 网络编号

例:

wpa_cli -i wlan0 select_network 0

注意:

此时只是连接AP成功,并未获取到IP、DNS。可使用udhcpc命令动态获取IP。

例:

udhcpc -i wlan0 -q

下面示例如何连接WiFi进行上网。

配置热点信息:

选择热点:

查看是否分配IP:

使用udhcpc获取IP:

访问外网测试:

4、查看WiFi状态信息

wpa_cli -i wlan0 status

使用status命令,查看当前wifi的信息,包括bssid,ssid,IP等等。

注意:通过status命令查看到WiFi是连接状态,并不能确定就能访问外网,还要查看是否已经获取了IP、DNS等。

5、保存WiFi热点信息

wpa_cli -i wlan0 save_config

保存WiFi热点信息到配置文件/etc/wpa_supplicant.conf文件中。

6、停止使用WiFi热点

wpa_cli -i wlan0 disable_network 网络编号

此时还连接着WiFi热点,只是没有激活使用WiFi。

例:

wpa_cli -i wlan0 disable_network 0

7、使能WiFi热点

wpa_cli -i wlan0 enable_network 网络编号

根据网络编号使能对应的WiFi热点,

例:

wpa_cli -i wlan0 enable_network 0

8、断开WiFi热点

wpa_cli -i wlan0 disconnect

断开连接WiFi热点,

9、重连WiFi热点

disconnect断开WiFi后,可以使用reconnect重连原来断开的网络。

wpa_cli -i wlan0 reconnect

10、删除WiFi热点

删除热点后,热点将从list_network中移除,即不能删除前的网络编号配置WiFi热点。

wpa_cli -i wlan0 remove_network 网络编号

例:

wpa_cli -i wlan0 remove_network 0

wpa_supplicant、wpa_cli的使用相关推荐

  1. Fedora30 nmcli连接wifi命令,不再使用wpa_supplicant/wpa_cli

    ENV: [root@Fedora ~]# uname -r 5.1.19-300.fc30.x86_64 [root@Fedora ~]# cat /etc/redhat-release Fedor ...

  2. wpa_supplicant wpa_cli 无线网络配置

    目前可以使用wireless-tools 或wpa_supplicant工具来配置无线网络.请记住重要的一点是,对无线网络的配置是全局性的,而非针对具体的接口. wpa_supplicant是一个较好 ...

  3. wpa_supplicant, wpa_cli用法

    Android系统中对于WIFI的设置集成到了"设置"中,其实跟手动设置差不多.这里介绍下如何手动连接WIFI,以方便以后调试WIFI. 第一步要做的就是要加载WIFI模块驱动了. ...

  4. wpa_supplicant介绍【转】

    本文转载自:https://zhuanlan.zhihu.com/p/24246712 一.什么是wpa_spplicant wpa_supplicant本是开源项目源码,被谷歌修改后加入Androi ...

  5. linux编写arm执行文件夹,嵌入式ARM-Linux平台上的编译、配置和运行使用

    本文介绍了嵌入式ARM-Linux上的常用应用程序wpa_supplicant(以及wpa_supplicant依赖的libnl和openssl)的编译.配置和运行使用,iw.hostapd等应用的编 ...

  6. Android之wifi工作流程

    Android Wifi的工作流程 一.WIFI工作相关部分 Wifi 网卡状态 1.    WIFI_STATE_DISABLED:WIFI网卡不可用 2.    WIFI_STATE_DISABL ...

  7. Wi-Fi Sigma测试系统

    Wi-Fi Sigma测试系统是Wi-Fi联盟(WFA)提出的一套全自动的WiFi认证测试系统,几乎涵盖的所有Wi-Fi的功能及性能(throughput)的自动化测试.该系统正逐步取代以前的WiFi ...

  8. android 5.0 wifi移植,android  wifi移植

    手动加载驱动 ####16th,Jul 驱动加载 modprobe libertas modprobe libertas_sdio 加载第二行时出错拉 # modprobe libertas_sdio ...

  9. Mtk WIFI常用调试命令

    在手机开发之初,我们很多时候要在lcm和tp还没有正常工作的时候就需要同步的进行wifi模块功能的开发,所以了解常用的命令会有助于我们快速的开发我们的手机,以下就是列出的常用命令供大家借鉴运用: 1. ...

  10. android WIFI学习总结

    转自 http://blog.csdn.net/ldinvicible/article/details/11909411 1        WLAN技术 WLAN是英文WirelessLAN的缩写,就 ...

最新文章

  1. OpenCV 腐蚀和膨胀
  2. Spark 读 Elasticsearch
  3. dubbo使用遇到的问题
  4. 图机器学习中的数据增强技术
  5. ftp 工具_ftp工具软件,五大站长们都爱的ftp工具软件
  6. [二叉树] 二叉树的最近公共祖先--leetcode236
  7. Python实现atm机的功能
  8. spark指定python版本_1.Spark学习(Python版本):Spark安装
  9. 【报告分享】2020年中国数据驱动型企业成长路径研究报告.pdf(附下载链接)...
  10. IntelliJ IDEA + EmmyLua:Lua IDE的安装与使用
  11. 计算机软件著作权登记指南
  12. C#中对txt文件的读写操作
  13. java对象说明 PO,BO,VO,DTO,POJO,DAO,Entity
  14. Oracle 11G GoldenGate实现Windows与Windows之间的单向同步
  15. 反转字符串 不同方式
  16. 《深度学习之美》推荐序:通俗也是一种美德
  17. 谷歌浏览器怎么关闭硬件加速?
  18. 【Where和having的区别】条件语句where和having有什么不同?
  19. Latex 多个参考文献的引用以及文献字体大小调整方法
  20. 安卓模拟器 arm linux,让x86的android模拟器能模拟arm架构系统

热门文章

  1. 389. 找不同 (Python 实现)
  2. [转]女孩,看完之后请别流下幸福的眼泪(图组)
  3. 最伟大的计算机程序员是如何诞生的?——解读高德纳(Donald E.Knuth)
  4. 解决Steam火炬之光2起动器在DeepinV20中显示空白透明的问题
  5. 如何优雅的批量下载m3u8 格式视频
  6. 酷狗kgma 酷我kwm转换mp3软件 qmcogg kgm mflac qmc格式转换mp3音乐
  7. 计算机磁盘桌面,右键点击桌面计算机
  8. chatgpt赋能python:Python图片加密:加强图片保密性的利器
  9. B. Weird Subtraction Proces
  10. 有什么文字翻译软件?可以文字翻译语音的软件有哪些?