Linux 使用wpa_supplicant手动配置连接wifi
1|0Linux 使用wpa_supplicant手动配置连接wifi
1|1wpa_supplicant
简介
wpa_supplicant是Linux BSD, Mac OSX和Windows的WPA的服务,支持WPA和WPA2(IEEE 802.11i/RSN),它适用于台式机/笔记本和嵌入式系统,Supplicant是在客户端站中使用的IEEE 802.1X/WPA组件,它使用WPA身份验证器实现秘钥协商,并控制漫游和IEEEE802.11认证/关联的WLAN驱动程序
wpa_supplicant被设计成一个在后台运行的"守护进程"程序,并作为控制无线连接的后端组件,wpa_supplicant支持单独的前端程序,包含基于文本的前端(wpa_cli)和GUI(wpa_gui)
wpa_supplicant使用灵活的构建配置,可用于选择包含哪些功能.允许最小代码大小(WPA/WPA2-Personal 50kb 130kb的WPA/WPA2-Enterprise中没有调试代码,450kb大小具有大多数功能和全面的调试支持,这些示例大小来自X86平台的构建)
编译安装
注意安装依赖,wpa_supplicant 依赖于 openssl , libnl
配置
wpa_supplicant的配置方式和其他的开源库不一样
-
wpa_supplicant目录中cp defconfig .config 拷贝生成编译配置
-
配置文件中可以针对功能进行裁剪,适应更多的平台, 如指定openssl 库的路径, 配置libnl的版本
-
指定编译器,默认的编译器为GCC,如需要交叉编译需要修改Makefile
-
指定安装路径, 默认的安装路径为/usr/local/目录下,交叉编译的时候需要指定路径来存放, 方便打包制作文件系统,同时也不会影响系统, 指定路径需要修改Makefile 中
安装
最后生成二进制可执行文件wpa_supplicant
和wpa_cli
。
1|2常用操作
wpa_supplicant是一个连接、配置WiFi的工具,它主要包含wpa_supplicant与wpa_cli两个程序。 可以通过wpa_cli来进行WiFi的配置与连接,前提要保证wpa_supplicant正常启动。
相当于wpa_supplicant 是服务端,wpa_cli 是客户端。
- 启动wpa_supplicant应用
- -D 驱动程序名称(可以是多个驱动程序:nl80211,wext)
- -i 接口名称
- -c 配置文件
- -B 在后台运行守护进程
配置文件 /etc/wpa_supplicant.conf文件里,添加下面代码:
ctrl_interface指向的是一个目录,在这个目录中默认会生成一个文件/var/run/wpa_supplicant/wlan0,这是local socket address,相当于UNIX Domain Socket,程序和后台程序wpa_supplicant进行通信(其实是wpa_supplicant作为后台服务程序是通过本地socket和客户端进行通信的)
update_config = 1时会在(客户端发送SAVE_CONFIG命令)更新这个配置文件。
wpa_supplicant.conf配置文件解析:
启动wpa_cli应用
wpa_cli 有命令和交互的方式进行操作
添加新的连接
保存连接
断开连接
连接已有连接
1|3使用wpa_passphrase
配置文件
我们一开始需要使用wpa_passphrase
生成一个用于连接wifi的配置文件
- ssid:要连接的WIFI名称
- passphrase:密码
wpa_passphrase
的配置文件示例
测试和连接WIFI
- -D 指定网卡驱动可为: nl80211 wext
- -i 指定网卡
- -c 指定配置文件
- & 挂起在后台
dhcp获取ip地址
如果是静态IP
- 192.168.1.119 为要设置的静态ip
- 255.255.255.0 为要设置的子网掩码
- 192.168.1.1 为要设置的网关
如果无法上网
- kill 掉 wpa_supplicant 和 dhclient 的进程 以重新测试
- 检查网卡名
- 检查配置文件
- -D更换驱动
- dns问题
1|4开机启动
加入开机脚本:
脚本内容(命令请自行更改为测试通过的命令)
如果没有测试通过,千万不能写进开机脚本,防止不能开机
重启测试能否自动连接上wifi
1|5最后还是不行的话
可以使用nmtui
连接,这是一款带有终端GUI 的软件,没有请自行百度安装。
1|6参考
玩转「Wi-Fi」系列之wpa_supplicant 介绍(七)
__EOF__

本文链接:https://www.cnblogs.com/hokori/p/14168584.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!