1. rfkill 介绍
rfkill是一个内核级别的管理工具,可以打开和关闭设备的蓝牙和wifi,wpa_supplicant 功能要调用 rfkill 的接口
2. rfkill 使用
命令 | 命令的功能 |
---|---|
rfkill list | 列出所有可用设备 |
rfkill block [编号] | 锁定指定编号的设备 |
rfkill unblock [编号] | 解锁指定编号的设备 |
3. wpa_supplicant 介绍
wpa_supplicant是一个连接、配置WIFI的工具,它主要包含wpa_supplicant与wpa_cli两个程序. 可以通过wpa_cli来进行WIFI的配置与连接,前提要保证wpa_supplicant正常启动
4. 启动/关闭 wpa_supplicant
使用 wpa_supplicant 管理 wifi 的时候,需要先使用 rfkill 解锁指定设备
# 解锁设备
rfkill unblock [编号]
# 连接前可以选择修改 wpa_supplicant.conf 配置文件
# 将 SSID 替换成WiFi名称
# 将 PASSWORD 替换成 WiFi 密码
vi /etc/wpa_supplicant.conf
# 下面这个命令按照配置文件自动连接,完成后会自动运行 udhcpc获取IP和注册网卡
wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B
# -D 驱动程序名称(可以是多个驱动程序:nl80211,wext)
# -i 接口名称
# -c 配置文件
# -B 在后台运行守护进程
关闭 wpa_supplicant 杀死线程就好了
# 卸载网卡
ifconfig wlan0 down
# 杀线程
killall udhcpc
killall wpa_supplicant
# 锁定wifi设备
rfkill block [编号]
5. wpa_supplicant 功能
5.1 启动 wpa_cli
# 搜索附件wifi热点
wpa_cli -i wlan0 scan
# 显示搜索的wifi热点
wpa_cli -i wlan0 scan_result
# 当前WPA/EAPOL/EAP通讯状态
wpa_cli -i wlan0 status
# pings wpa_supplicant
wpa_cli -i wlan0 ping
5.2 添加新的连接
# 添加一个网络连接,会返回<network id>
wpa_cli -i wlan0 add_network
# ssid名称
wpa_cli -i wlan0 set_network <network id> ssid '"name"'
# psk密码
wpa_cli -i wlan0 set_network <network id> psk '“psk”'
# 可以扫描隐藏的AP
wpa_cli -i wlan0 set_network <network id> scan_ssid 1
# 优先级
wpa_cli -i wlan0 set_network <network id> priority 1
5.3 保存/删除指定连接配置
# 信息保存到默认的配置文件中
wpa_cli -i wlan0 save_config
# 删除指定连接配置
wpa_cli -i wlan0 remove_network <network id>
5.4 连接/断开指定AP
# 选择网络编号
wpa_cli -i wlan0 select_network <network id>
# 使能指定wifi热点
wpa_cli -i wlan0 enable_network <network id>
# 断开指定wifi热点
wpa_cli -i wlan0 disable_network <network id>
5.5 断开/重连AP
# 断开wifi热点
wpa_cli -i wlan0 disconnect
# 重连wifi热点
wpa_cli -i wlan0 reconnect
5.6 查看WiFi状态
wpa_cli -i wlan0 status