wpa_supplicant 配置与应用

  1. 概述

wpa_supplicant是wifi客户端(client)加密认证工具,和iwconfig不同,wpa_supplicant支持wep、wpa、wpa2等完整的加密认证,而iwconfig只能支持wep。

和wpa_supplocant相对应的,ap端的加密认证工具为hostapd。

wpa_supplicant运行于后台,它需要借助控制台工具wpa_cli来进行手动操作。

  1.  wpa_supplicant配置文件

    1.  Config文件

在wpa_supplicant源码目录下,存在参考的配置文件wpa_supplicant.conf,几乎包含里所有的配置项。

我们的配置文件不需要这么复杂,开始测试阶段,我只写最简单的配置文件,其它手动操作先。

在/etc/下建立配置文件wpa_supplicant.conf,内容如下:


ctrl_interface=/var/run/wpa_supplicant

update_config=1

其中,update_config=1使能配置更改。

 

    1.  wpa_supplicant参数

wpa_supplicant可以通过如下命令查看其所有操作参数:

 


#wpa_supplicant --help

wpa_supplicant: invalid option -- -

wpa_supplicant v0.8.x

Copyright (c) 2003-2011, Jouni Malinen <j@w1.fi> and contributors

This program is free software. You can distribute it and/or modify it

under the terms of the GNU General Public License version 2.

Alternatively, this software may be distributed under the terms of the

BSD license. See README and COPYING for more details.

 

usage:

wpa_supplicant [-BddhKLqqstuvW] [-P<pid file>] [-g<global ctrl>] \

-i<ifname> -c<config file> [-C<ctrl>] [-D<driver>] [-p<driver_param>] \

[-b<br_ifname>] [-f<debug file>] [-e<entropy file>] \

[-o<override driver>] [-O<override ctrl>] \

[-N -i<ifname> -c<conf> [-C<ctrl>] [-D<driver>] \

[-p<driver_param>] [-b<br_ifname>] ...]

 

drivers:

athr = Atheros Linux 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)

-i = interface name

-d = increase debugging verbosity (-dd even more)

-D = driver name (can be multiple drivers: nl80211,wext)

-e = entropy file

-g = global ctrl_interface

-K = include keys (passwords, etc.) in debug output

-t = include timestamp in debug messages

-h = show this help text

-L = show license (GPL and BSD)

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

-v = show version

-W = wait for a control interface monitor before starting

-N = start describing new interface

example:

wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf

 

其中最常用的为:-i 指定端口,-c 指定配置文件,-D 指定使用的wifi驱动

我们这里只指定端口和配置文件,驱动使用默认的。

wpa_supplicant启动操作命令如下:


#wpa_supplicant -i ath0 -c /etc/wpa_supplicant.conf &

 

注意:启动wpa_supplicant之前wifi必须先启动,wpa_supplicnat使用在wifi client端口上。

 

在测试过程中,如果出现问题,可以在wpa_supplicant启动时使用参数使其输出更多的debug信息:

#wpa_supplicant -i ath0 -c /etc/wpa_supplicant.conf -dddd

  1.  手动操作

wpa_supplicant启动后,就可以通过wpa_cli来操作设置了。

wpa_cli操作有两种方法,一是直接进入CLI控制台操作,如下:

#wpa_cli


# wpa_cli

wpa_cli v0.8.x

Copyright (c) 2004-2011, Jouni Malinen <j@w1.fi> and contributors

 

This program is free software. You can distribute it and/or modify it

under the terms of the GNU General Public License version 2.

 

Alternatively, this software may be distributed under the terms of the

 

BSD license. See README and COPYING for more details.

 

Selected interface 'ath0'

 

Interactive mode

 

> add

0

> list_network

network id / ssid / bssid / flags

0 any [DISABLED]

>

 

另一种是直接在终端中敲击完整的命令行操作,如下:


# wpa_cli -i ath0 set_network 0 ssid '"206"'

OK

 

这两种方法的效果是一样的,主要区别如下:

  • wpa_cli控制台中写的命令行要简单些,不需要指定端口(如wpa_cli –i ath0),但写错了不能回退,需要重新完整写入
  • 终端写入的命令行长写,但写错里可以回退重新写。
  • 对于ssid和密码,终端中操作时需要使用单引号把双引号的字符包括起来,而cli控制台中只需要双引号,如下:

 

 


> set_network 0 psk "12345678"

OK

 

wpa_cli支持的所有命令可以通过help操作来查看


> help

 

 

  1.  扫描于连接

以下是我的一个完整的扫描连接过程:

  1. 启动wpa_supplicant和wpa_cli.

# wpa_supplicant -i ath0 -c /etc/wpa_supplicant.conf &

# wpa_cli

 

  1. 扫描ap

使用scan命令扫描网络,结束后使用scan_results命令查看网络。


> scan

OK

> driver_atheros_event_wireless: scan result event - SIOCGIWSCAN

<3>CTRL-EVENT-SCAN-RESULTS

<3>WPS-AP-AVAILABLE

 

> > scan_results

bssid / frequency / signal level / flags / ssid

00:23:68:26:40:c8 2412 36 [ESS] CMCC

00:26:5a:26:33:ac 2437 38 [WPA-PSK-TKIP][WPA2-PSK-TKIP][WPS][ESS] LZ205

>

 

  1. 增加网络

使用add_network命令增加一个网络,可以使用list_network查看增加的网络信息。


> add_network

0

> list_network

network id / ssid / bssid / flags

0 any [DISABLED]

 

  1. 设定网络连接的ssid和密码

使用set_network命令设定连接的ap的用户名和密码


> set_network 0 ssid "LZ205"

OK

> set_network 0 psk "20100208"

OK

 

  1. 使能网络连接

使用enable_network命令使能网络连接


> enable_network 0

OK

> driver_atheros_event_wireless: scan result event - SIOCGIWSCAN

ath0: Trying to associate with 00:26:5a:26:33:ac (SSID='LZ205' freq=2437 MHz)

<3>CTRL-EVENT-SCA ieee80211_ioctl_setmlme: os_opmode=1

[ieee80211_ioctl_setmlme] set desired bssid 00:26:5a:26:33:ac

N-RESULTS

<3>WPS-AP-AVAILABLE

<3>Trying to associate with 00:26:5a:26:33:ac (SSID='LZ205' freq=2437 MHz)

ath_paprd_cal PAPRD excessive failure disabling PAPRD now

ath0: Associated with 00:26:5a:26:33:ac

<3>Associated with 00:26:5a:26:33:ac

vap-0: mlme_sta_swbmiss_timer_handler: SW Beacon miss!!

vap-0: mlme_sta_swbmiss_timer_handler: SW Beacon miss!!

vap-0: ieee80211_vap_iter_beacon_miss: Beacon miss, will indicate to OS!!

ath0: WPA: 4-Way Handshake failed - pre-shared key may be incorrect

<3>WPA: 4-Way Handshake failed - pre-shared key may be incorrect

ath0: CTRL-EVENT-DISCONNECTED bssid=00:26:5a:26:33:ac reason=0

<3>CTRL-EVENT-DISCONNECTED bssid=00:26:5a:26:33:ac reason=0

ieee80211_ioctl_setmlme: os_opmode=1 sult event - SIOCGIWSCAN

[ieee80211_ioctl_setmlme] set desired bssid 00:26:5a:26:33:ac

 

<3>CTRL-EVENT-SCAN-RESULTS

<3>WPS-AP-AVAILABLE

ath0: Trying to associate with 00:26:5a:26:33:ac (SSID='LZ205' freq=2437 MHz)

<3>Trying to associate with 00:26:5a:26:33:ac (SSID='LZ205' freq=2437 MHz)

ath0: Associated with 00:26:5a:26:33:ac

<3>Associated with 00:26:5a:26:33:ac

ath0: WPA: Key negotiation completed with 00:26:5a:26:33:ac [PTK=TKIP GTK=TKIP]

<3>WPA: Key negotiation completed with 00:26:5a:26:33:ac [PTK=TKIP GTK=TKIP]

ath0: CTRL-EVENT-CONNECTED - Connection to 00:26:5a:26:33:ac completed (auth) [id=0 id_str=]

<3>CTRL-EVENT-CONNECTED - Connection to 00:26:5a:26:33:ac completed (auth) [id=0 id_str=]

 

看到CTRL-EVENT-CONNECTED信息,表示连接完成。

  1. 状态查看

使用status命令可以查看网络状态,使用quit退出CLI后,可以使用iwconfig命令查看ath0连接状态。


> status

bssid=00:26:5a:26:33:ac

ssid=LZ205

id=0

mode=station

pairwise_cipher=TKIP

group_cipher=TKIP

key_mgmt=WPA2-PSK

wpa_state=COMPLETED

address=20:13:08:15:16:13

 

  1. config保存

使用save命令可以保存当前的连接设置,下次wifi启动时会自动连接此AP.

保存后,wpa_supplicant.conf文件被自动修改为如下内容:


ctrl_interface=/var/run/wpa_supplicant

update_config=1

device_type=0-00000000-0

 

network={

ssid="LZ205"

psk="20100208"

}

 

 

  1.  自动连接

若希望wifi启动后自动连接到预先设置的ap,只需按如下设置脚本即可以,如果预先设置里多个ap则每个网络需要设置优先级参数priority。


ctrl_interface=/var/run/wpa_supplicant

update_config=1

 

network={

ssid="LZ205"

psk="20100208"

priority=2

}

时间: 2024-10-27 21:02:16

wpa_supplicant 配置与应用的相关文章

wpa_supplicant 与iwpriv工具配置WIFI的命令

=====================================================hostapd 配置命令=====================================================/system/bin/hostapd -e/data/misc/wifi/entropy.bin /data/misc/wifi/hostapd.conf & Android:ndc softap set wlan0 henryking broadcast 6

wpa_supplicant对wep,wpa,wpa2的psk和隐藏ap的scan_ssid扫描配置

# 请不要修改下面这一行内容,否则将不能正常工作ctrl_interface=/var/run/wpa_supplicant # 确保只有root用户能读取WPA的配置ctrl_interface_group=0 # 使用wpa_supplicant来扫描和选择APap_scan=1 # 简单的情形:WPA-PSk密码验证方式,PSK是ASCII密码短语,所有合法的加密方式都允许连接network={ ssid="simple" psk="very secret passph

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

内容: 介绍 WPA Supplicant Wireless Tools 针对每个ESSID的网络配置     4.a. 介绍 目前您可以使用我们提供的wireless-tools 或wpa_supplicant工具来配置无线网络.请记住重要的一点是,您对无线网络的配置是全局性的,而非针对具体的接口. wpa_supplicant是一个最好的选择,但缺点是它不支持所有的驱动.请浏览wpa_supplicant网站获得它所支持的驱动列表.另外,wpa_supplicant目前只能连接到那些你已经配

wpa_supplicant无线网络配置

目前可以使用wireless-tools 或wpa_supplicant工具来配置无线网络.请记住重要的一点是,对无线网络的配置是全局性的,而非针对具体的接口.      wpa_supplicant是一个较好的选择,但缺点是它不支持所有的驱动.请浏览wpa_supplicant网站获得它所支持的驱动列表.另外,wpa_supplicant目前只能连接到那些你已经配置好ESSID的无线网络.wireless-tools支持几乎所有的无线网卡和驱动,但它不能连接到那些只支持WPA的AP.     

wpa_cli和wpa_supplicant使用,配置无线AP名和密码,静态ip地址

配置静态ip方法分享:通过串口命令行输入如下命令:      1. 添加无线网络接入点(AP) 及其 密码:# wpa_cli -p /data/misc/wpa_supplicantwpa_cli v0.5.11Copyright (c) 2004-2008, Jouni Malinen and contributors                                                                                        

CentOS6.4系统中Mysql数据库卸载、安装与配置

  就像Windows server 2003,2008中一般安装的是Sql Server 数据库,在linux系统中一般安装的是mysql数据库,而且Mysql数据库的第一个版本就是发行在Linux系统上的. 一.mysql简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.MySQL的SQL语言是用于访问数据

CentOS-6.4无线上网命令行配置

  待连接的WIFI的ssid为"thm",密码为12345678,认证方式为WPA2-PSK 1. 检查无线网卡驱动是否安装 1 xxx#iwconfig 若打印wlan0(或其他名字)的无线网卡信息,则表明无线网卡驱动已经安装,否则要先安装无线网卡驱动方能继续. 2. 配置/etc/sysconfig/network-scripts/ifcfg-wlan0 我的配置文件内容为: 1 DEVICE=wlan0 2 HWADDR=9C:4E:36:9A:64:10 3 TYPE=Wir

在Ubuntu下编译wpa_supplicant

最近在研究WiFi联盟的多屏互动协议Miracast,其中需要用到wpa_supplicant,编译中遇到了一些问题,经过一下午的折腾也都解决了,下面分享给各位. 一.编译需要用到三个库源码包,分别是wpa_supplicant, openssl, libnl 1. wpa_supplicant是我们需要编译的源文件包,目前最新版本是1.1.在终端命令行下输入: wget http://hostap.epitest.fi/releases/wpa_supplicant-1.1.tar.gz 进行

debian环境设置笔记及中文环境配置

注:只是简略记录,且非当时记录,中间确实很多步骤,希望自己能有机会详细记录每一个步骤 环境   架构:amd64   系统:debian8   桌面:xfce4 安装 基本系统(默认已选) LAPTOP 标准工具 ) ultraiso制作启动u盘; 其他机器不能用 其他硬盘不能用 ) 最小化安装:只选·[LAPTOPS]和[标准工具],700个包不到,配置好源后直接安装最新包; ) 弃用gnome3, 面板都不允许添加启动器,gedit中英文对齐绝对是渣; ) 刚开始装的是gnome3, fci