wpa_cli辅助工具的使用

在linux系统上,wpa_supplicant是一个强大的无线网卡管理程序,它负责Wi-Fi的配置/扫描/连接。

可以通过wpa_cli程序控制wpa_supplicant进行Wi-Fi的配置与连接,但首先要确保wpa_supplicant运行正常(wpa_supplicant是以持久方式运行的)。

这一章主要讲如何通过wpa_cli命令快速连接上AP。

wpa_cli常用命令

wpa_cli命令说明
scan发起扫描AP请求
scan_results获取AP扫描结果
add_network添加一个新网络
set_network配置网络SSID/KEY_MGMT/PSK
enable_network使能网络
status获取网卡状态
select_network选择工作网络
list_network列出所有网络
remove_netwrok移除网络

以下操作都假设无线网卡名称为wlan0,如果不正确可以通过ifconfig -a查询当前系统下所有网卡。

扫描热点

$ wpa_cli -iwlan0 scan
$ wpa_cli -iwlan0 scan_results

scan完成后会返回ok,然后可以通过scan_results获取热点扫描结果,从中选择我们想要连接的热点。

扫描结果里有AP的关键信息:BSSID / 频率(通道)/ 信号 / 认证方式 和 SSID。

连接无认证密钥热点

$ wpa_cli -iwlan0 add_network # 返回的network_id要在接下来使用,例如0
$ wpa_cli -iwlan0 set_network 0 ssid "Opened-SSID"
$ wpa_cli -iwlan0 set_netwrok 0 key_mgmt NONE
$ wpa_cli -iwlan0 enable_network 0
  1. 通过add_network告知wpa_supplicant进程要创建一个网络,wpa_supplicant创建完成后,会返回一个network_id(数值会累加),比如我们上面的样例返回0.
  2. 通过set_network配置网络(network_id为0)的SSID为Opened-SSID.
  3. 通过set_network配置网络(network_id为0)的密钥管理方式为NONE(认证不需要加密,传输不需要加密)
  4. 使能network_id为0的网络

以上操作完成后,如果设备网络环境正常,设备会连接到名为Opened-SSID的AP,但此时设备并不能上网,需要同路由协商获取一个IP方可联网。

udhcpc -i wlan0

udhcpc获取到IP后,可以访问路由所在网络。如果路由连接了Internet,那么设备就可以访问Internet进行上网。

我们可以通过status命令查询无线网卡状态,查询命令如下:

$ wpa_cli -iwlan0 status

连接WEP密钥热点

$ wpa_cli -iwlan0 add_network # 假设这次返回1
$ wpa_cli -iwlan0 set_network 1 ssid "WEP-SSID"
$ wpa_cli -iwlan0 set_network 1 key_mgmt NONE
$ wpa_cli -iwlan0 set_network 1 wep_key0 "12345678"
$ wpa_cli -iwlan0 enable_network 1

连接WEP密钥热点比连接OPEN热点多了一步wep_ke0属性配置,它是用来配置网络(network_id为1)的WEP密钥方式的密码。
其它同上。

连接WPA-PSK/WPA2-PSK密钥热点

$ wpa_cli -iwlan0 add_network # 假设这次返回2
$ wpa_cli -iwlan0 set_network 2 ssid "PSK-SSID"
$ wpa_cli -iwlan0 set_network 2 key_mgmt WPA-PSK
$ wpa_cli -iwlan0 set_network 2 psk "1234567890"
$ wpa_cli -iwlan0 enable_network 2

连接WPA-PSK/WPA2-PSK密钥热点将key_mgmt密钥管理协议配置为WPA-PSK/WPA2-PSK;同时用psk属性来配置密码。
其它同上。

切换已配置热点

假设我们已经通过wpa_cli创建且使能了多个网络,可以通过select_network来切换热点连接,切换命令如下:

$ wpa_cli -iwlan0 select_network $network_id

$network_id是每次add_network返回的netowr_id。

连接隐藏热点

隐藏热点不会通过Beacon帧来宣布自身的存在,所以设备(工作站)一般要主要通过(Probe Request)主动扫描热点,主动扫描命令开启如下:

$ wpa_cli -iwlan0 set_network $network_id scan_ssid 1
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值