rfkill和wpa_supplicant使用

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 添加新的连接

# 添加一个网络连接,会返回 
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

你可能感兴趣的:(bash,网络,开发语言)