wpa_supplican介绍及使用

来源:互联网 发布:求迅龙数据恢复注册机 编辑:程序博客网 时间:2024/06/05 03:54

一、wpa_supplicant是什么
目前越来越多的设备载体开始带有无线功能,而对无线网络的配置现在可以使用wireless-tools或者wpa_supplicant。
二者区别如下:
1、wpa_supplicant不支持所有驱动,目前也只能连接到已经配置好ESSID的。
2、wireless-tools几乎支持所有的驱动,但不能连接到那些只支持WPA的AP。
目前有些芯片厂商会定制自己的WIFI协议处理模块,对无线网络的配置一般会基于wireless-tools开发
一些私有的iwpriv命令和我AP进行交互。

wpa_supplicant类似中间件,负责用户层和WIFI底层驱动交互信息的中转。同时wpa_supplicant也会解析WIFI交互协议和作为一个认证服务端进行AP的连接认证。

二、wpa_supplicant & wpa_cli无线网络配置
对于wpa_supplicant源代码,经过编译之后会产生两个可执行文件:wpa_supplicant和wpa_cli。
1、wpa_supplicant是核心程序,作为一个服务端在后台运行。
2、wpa_cli类似一个客户端,通过socket通信方式与wpa_supplicant进行交互来达到对附件网络的搜索,设置和连接。

对于如何通过wpa_supplicant连接AP信号,其过程如下:
1、首先wpa_supplicant作为一个服务端先运行起来。运行如下命令,启动服务:
wpa_supplicant -iwlan0 -Dwext -c /xx/wpa_xx.conf -dd -B
命令常用参数描述如下:
-i : 网络接口名称
-c: 配置文件名称
-C: 控制接口名称
-D: 驱动类型名称
-p: 驱动参数
-b: 桥接口名称
-B:后台运行
-d: 增加调试信息

2、wpa_supplicant运行起来以后就要通过wpa_cli来和其交互进行wifi的设置了。
对于wpa_cli的操作可以进入命令行操作也可以直接一条完整的命令设置。
如果不进入命令行的话,可以通过类似如下命令操作:
wpa_cli -iwlan0 -p/var/run/wpa_supplicant add_network

由于wpa_cli和wpa_supplicant交互是通过socket方式交互的,所以-p/var/run/wpa_supplicant是一个套接字通道。

如果是直接进入命令行操作界面如下:
这里写图片描述

wpa_cli支持的操作命令大家直接去运行命令查看就OK。

通过wpa_cli连接ap的命令如下:
1、连接未加密的ap

add_network
1
set_network 1 ssid “test_wifi”
OK
set_network 1 key_mgmt NONE
OK
enable_network 1
OK

执行add_network时返回的1表示网络ID,一般是从0开始,如果0已经被占用了就会从1开始,默认累加。

2、连接wpa-psk/wpa2-psk加密的ap

add_network
2
set_network 2 ssid “test_wifi”
OK
set_network 2 psk “12345678”
OK
enable_network 2
OK

3、连接wep加密的ap

add_network
3
set_network 3 ssid “test_wifi”
OK
set_network 3 key_mgmt NONE
OK
set_network 3 wep_key0 “12345”
OK
enable_network 3

我们通过wpa_cli不仅可以连接ap,还可以做其他事情。

可以通过wpa_cli获取周围环境的所有的ap信息,包括ssid,加密方式,信号强度,传输速度等信息。一些功能的二次开发可能会用到这些信息。

0 0