wpa_supplicant 无线网络配置

安装wpa_supplicant后,修改服务,编辑
/usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service
将下面的
[D-BUS Service] Name=fi.epitest.hostap.WPASupplicant  Exec=/sbin/wpa_supplicant -u -f /var/log/wpa_supplicant.log User=root
改成:
[D-BUS Service] Name=fi.epitest.hostap.WPASupplicant  Exec=/sbin/wpa_supplicant -u -onl80211 -O/var/run/wpa_supplicant User=root


启动无线接口:
ifconfig wlan0 up



若出现SIOCSIFFLAGS:Opration not possible due to RF-kill,是因为没打开无线开关(软开关),使用fn+F5打开,或echo 1 >/sys/class/rfkill/rfkill0/state

可以使用 $ watch -n1 rfkill list all 检测驱动rfkill是否上报无线适配器的状态. 如果你开启适配器后,其标识符仍然显示blocked,你可以尝试如下命令,手动unblock(X是前一条命令的identifier编号)
# rfkill event unblock X

关于rfkill
rfkill list [ifname]    列出,显示为yes的即为关闭的
rfkill unblock [ifname]  打开,block关闭

可以用iwlist扫描一下,看看周围无线的情况
iwlist wlan scan





手动连接

生产配置文件最直接的办法:
wpa_pasdphrase "ssid">>/etc/wpa_supplicant/wpa_supplicant.conf



在上面命令回车后,输入ap的密码,回车,这样就自动生成了配置文件
或者:
# wpa_passphrase MYSSID passphrase > /etc/wpa_supplicant/example.conf



该文件里的内容如下:
/etc/wpa_supplicant/example.conf

ctrl_interface=DIR=/run/wpa_supplicant GROUP=wheel
update_config=1
fast_reauth=1
ap_scan=1
network={
    ssid="MYSSID"
    #psk="passphrase"
    psk=59e0d07fa4c7741797a4e394f38a5c321e3bed51d54ad5fcbd3f84bc7415d73d
}



network块的上面是需要手动添加的。
ctrl_interface是为了之后可以使用wpa_cli(稍后讲解)
GROUP=wheel使wheel组的用户可以执行wpa_cli
update_config=1表示wpa_cli生成的配置文件可以被保存
fast_reauth=1和ap_scan=1激活全局作用,一般不用管它


开始连接:
# wpa_supplicant -B -i interface -c /etc/wpa_supplicant/example.conf



-B 后台运行
-i 接口名,一般为wlan0,用ip link可查看所有接口名
-c 配置文件


之后获取ip
dhclient wlan0






使用wpa_cli设置网络

wpa_cli是可以交互配置wpa的工具,相当于wpa_supplicant的前端
需要在wpa_supplicant.conf中加入这两行:
ctrl_interface=/run/wpa_supplicant
update_config=1




开启wpa_supplicant后台:
# wpa_supplicant -B -i interface -c /etc/wpa_supplicant/example.conf

运行:
wpa_cli



会出现>提示符,也可以-i指定接口,否则默认为首先发现的无线接口

scan和scan_result扫描网络,执行结果像下面这样:
> scan
OK
<3>CTRL-EVENT-SCAN-RESULTS
> scan_results
bssid / frequency / signal level / flags / ssid
00:00:00:00:00:00 2462 -49 [WPA2-PSK-CCMP][ESS] MYSSID
11:11:11:11:11:11 2437 -64 [WPA2-PSK-CCMP][ESS] ANOTHERSSID
 
添加:
> add_network
0
> set_network 0 ssid "MYSSID"
> set_network 0 psk "passphrase"
> enable_network 0
<2>CTRL-EVENT-CONNECTED - Connection to 00:00:00:00:00:00 completed (reauth) [id=0 id_str=]
之后用save_config保存


获取ip
dhclient wlan0






这里的表格很有用
参考文章

你可能感兴趣的:(无线,wpa)