查看: 1271|回复: 0

[技术交流] wpa_supplicant总结

[复制链接]

185

主题

204

帖子

596

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
596
发表于 2022-4-12 16:11:00 | 显示全部楼层 |阅读模式
# wpa_supplicant
wpa_supplicant 是一个跨平台的 supplicant,支持 WPA、WPA2 和 WPA3 ( IEEE 802.11i )。它适用于台式机、笔记本电脑和嵌入式系统。常用于嵌入式Linux中连接无线网络。
wpa_supplicant 包其中包括主程序 wpa_supplicant , 密码配置工具  wpa_passphrase ,和一个文本的前端交互工具 wpa_cli。

使用 wpa_supplicant 连接到AP
wpa_supplicant 工具运行是需要一个配置文件,文件中包含所连无线网的名称密码。一般配置文件位于 /etc 目录、命名为 wpa_supplicant.conf
默认的配置文件如下ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
update_config=1

network={
        key_mgmt=NONE
}配置说明# wpa 的控制接口,必须要有
ctrl_interface=/var/run/wpa_supplicant

# wpa 控制接口的用户组,0 表示root用户可以读取WPA的配置
ctrl_interface_group=0

# 让 wpa_cli 程序可以更改配置文件
update_config=1

# 使用wpa_supplicant 来扫描选择AP
ap_scan=1

network={
        ssid="Root"        #无线网名称
        psk="123456789"    #无线网密码 如果没有密码的热点,psk=...,替换为 key_mgmt=NONE
}连接AP
一般连接 Wi-Fi 的命令为:
$> wpa_supplicant -B -i <interface> -c  /etc/wpa_supplicant.conf
wpa_supplicant 连接 AP 最常用的参数说明:
  • -B    后台运行
  • -c   < filename >   配置文件的路径
  • -i    < interface >  Wi-Fi 接口
  • -D  < driver  name>  选择驱动框架
    • nl80211   是最新的驱动框架使用 netlink 通信
    • wext         老的驱动框架使用 ioctl 的方式通信


查看连接状态$> iw dev wlan0 link
获取IP地址$>  udhcpc –i wlan0 &
wpa_cli
wpa_cli 工具是一个命令行工具,他可以被用作配置wpa_supplicant 。wpa_cli 运行时必须要连接(依赖)wpa_supplicant。
wpa_cli 扫描和连接 AP
编辑配置 wpa_supplicant 的配置文件
$> vi /etc/wpa_supplicant.conf
配置文件的内容
ctrl_interface=/var/run/wpa_supplicant               
ctrl_interface_group=0                                                      
update_config=1                                             
                                                     
network={                             
        key_mgmt=NONE                          
}  
运行 wpa_supplicant
$> wpa_supplicant -B -i <interface> -c  /etc/wpa_supplicant.conf
运行 wpa_cli
$> wpa_cli
wpa_cli v2.9
Copyright (c) 2004-2019, Jouni Malinen <j@w1.fi> and contributors

This software may be distributed under the terms of the BSD license.
See README for more details.

Selected interface 'p2p-dev-wlan0'
Interactive mode

> 搜索AP
使用 scan 和 scan_results 命令查看扫描到的 AP
> scan   # 搜索热点
OK
OK
> scan_results   #获取搜索结果
bssid / frequency / signal level / flags / ssid
e4:d3:32:3a:06:2c       2462    -19     [WPA-PSK-CCMP][WPA2-PSK-CCMP][WPS][ESS] Root
fc:d7:33:67:d7:44       2412    -57     [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS]      TP-LINK
0a:69:6c:2f:8b:14       2432    -57     [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS]      lierda-test
12:69:6c:2f:8b:00       2412    -66     [ESS]   lierda-acc
> 添加和连接 AP> add_network    #添加一个AP
0
> set_network 0 ssid "MYSSID"     # AP名称
> set_network 0 psk "passphrase"  # AP密码
> enable_network 0
wpa_passphrase
wpa_passphrase工具用于生成 wpa_supplicant 用于连接 AP 所需的的最小配置。
$> wpa_passphrase Root 123456789
network={
        ssid="Root"
        #psk="123456789"
        psk=d37afbe3fb5722459d7eb04bf9d4c0d0323d1f36690a84f4559821f627de60f1
}
将 wpa_passphrase 输出重定向到wpa_supplicant 配置文件
$> wpa_passphrase Root 123456789 >> /etc/wpa_supplicant.conf


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表