WIFI是通过认证允许获得许可的设备连接到wifi网络。
以手机上WIFI热点为例,有4种常用的"认证/加密方式":
a. OPEN(可不加密,也可使用WEP加密)
b. WEP(WEP加密)
c. WPA(TKIP 加密),有2种:
802.1x/TKIP,兼容WEP加密
PSK/TKIP,兼容WEP加密
d. WPA2(AES 加密),有2种:
802.1x/CCMP(AES加密),兼容TKIP、WEP
PSK/CCMP(AES加密),兼容TKIP、WEP
其中OPEN和WEP安全性很差,容易被破解。
要支持wifi,内核需配置以下2个模块:
-> Networking suppor
-> Wireless
<*> cfg80211 - wireless configuration API
<*> Generic IEEE 802.11 Networking Stack (mac80211)
WIFI设备的工作分为STA模式和AP模式,STA就是类似于手机,AP就是热点。
调试wifi(STA功能)可以使用以下3个工具:
iw(iwconfig 的改进版),wpa_supplicant,dhcpd
iw和wpa_supplicant用于配置、控制wifi网卡(默认为wlan0),其中iw支持open和wep认证方式,wpa_supplicant支持以上4种认证方式,可见,完全可以抛弃iw,直接使用wpa_supplicant即可。
dhcpd用于从wifi热点自动获取IP地址和DNS。
实际上,只使用wpa_supplicant也可以简单调试wifi。
启动wpa_supplicant
wpa_supplicant -i wlan0 -D nl80211 -c /etc/Wireless/wpa_supplicant.conf&
wpa_cli
wpa_cli -i wlan0 scan //搜索附件wifi热点
wpa_cli -i wlan0 scan_result //显示搜索wifi热点
wpa_cli -i wlan0 status //当前WPA/EAPOL/EAP通讯状态
wpa_cli -i wlan0 ping //pings wpa_supplicant
添加新的连接
wpa_cli -i wlan0 add_network //添加一个网络连接,会返回<network id>
wpa_cli set_network <network id> ssid '"name"' //ssid名称
wpa_cli set_network <network id> psk '“psk”' //密码
wpa_cli set_network <network id> scan_ssid 1
wpa_cli set_network <network id> priority 1 //优先级
保存连接
wpa_cli -i wlan0 save_config //信息保存到默认的配置文件中
断开连接
wpa_cli -i wlan0 disable_network <network id>
连接已有连接
wpa_cli -i wlan0 list_network //列举保存过得连接
wpa_cli -i wlan0 select_network <network id> //连接指定的ssid
wpa_cli -i wlan0 enable_network <network id> //使能制定的ssid
wlan0自动获取ip
udhcpc -i wlan0(获取ip地址)
http://slightsnow.blog.chinaunix.net/uid-30031530-id-5164063.html
https://blog.csdn.net/weixin_38503885/article/details/83116977