当前位置:   article > 正文

BPI-M2-Zero Armbian_22.11.0 连接WiFi的方法,使用wpa_cli,wpa_supplicant,可创建自动连接...

armbian+热点wifi

image

wpa_supplicant 工具包含wpa_supplicant和wpa_cli这2个程序,其中wpa_supplicant程序作为服务端在后台运行,服务wpa_cli客户端的请求,从而实现WiFi的配置连接。

使用 wpa_supplicant

要运行wpa_cli就必须先运行wpa_supplicant,wpa_supplicant作为wpa_cli的服务端,必须先启动,才能给wpa_cli访问使用。使用命令:

  1. wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -B
  2. //-D nl80211 : 表示驱动类型名称为nl80211
  3. //-i wlan0:表示网络接口名称为wlan0
  4. // -c /etc/wpa_supplicant/wpa_supplicant.conf :
  5. // 配置文件wpa_supplicant.conf的路径,
  6. // BPI-M2-Zero Armbian_22.11.0 中的路径为此。
  7. //-B:表示将守护进程wpa_supplicant 挂到后台运行

使用 wpa_cli

启动wpa_cli应用

  1. $ wpa_cli -i wlan0 scan // 搜索附近wifi网络
  2. $ wpa_cli -i wlan0 scan_result // 打印搜索wifi网络结果
  3. $ wpa_cli -i wlan0 list_network // 列出已有网络连接id
  4. $ wpa_cli -i wlan0 add_network // 添加一个网络连接,会返回一个id编号

如果要连接加密方式是[WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS] (wpa加密),wifi名称是name,wifi密码是:psk,网络连接id 为 0,添加多个会递增。

  1. $ wpa_cli -i wlan0 set_network 0 ssid '"name"'
  2. $ wpa_cli -i wlan0 set_network 0 psk '"psk"'
  3. $ wpa_cli -i wlan0 select_network 0
  4. $ wpa_cli -i wlan0 enable_network 0

如果要连接加密方式是[WEP][ESS] (wep加密),wifi名称是name,wifi密码是psk。

  1. $ wpa_cli -i wlan0 set_network 0 ssid '"name"'
  2. $ wpa_cli -i wlan0 set_network 0 key_mgmt NONE
  3. $ wpa_cli -i wlan0 set_network 0 wep_key0 '"psk"'
  4. $ wpa_cli -i wlan0 select_network 0
  5. $ wpa_cli -i wlan0 enable_network 0

如果要连接加密方式是[ESS] (无加密),wifi名称是name。

  1. $ wpa_cli -i wlan0 set_network 0 ssid '"name"'
  2. $ wpa_cli -i wlan0 set_network 0 key_mgmt NONE
  3. $ wpa_cli -i wlan0 select_network 0
  4. $ wpa_cli -i wlan0 enable_network 0

分配ip/netmask/gateway/dns

$ udhcpc -i wlan0 -q

如果遇到command not found,补充安装一个必要的,用于分配ip/netmask/gateway/dns的工具 udhcpc.

  1. sudo apt update
  2. sudo apt install udhcpc

如果遇到:

Warning: /etc/resolv.conf is not a symbolic link to /run/resolvconf/resolv.conf`

这样做:

  1. // 比较这两个文件
  2. $ cat /run/resolvconf/resolv.conf
  3. # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
  4. # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
  5. # 127.0.0.53 is the systemd-resolved stub resolver.
  6. # run "systemd-resolve --status" to see details about the actual nameservers.
  7. nameserver 192.168.223.150
  8. nameserver 127.0.0.53
  9. $ cat /etc/resolv.conf
  10. // /etc/resolv.conf 很可能没有/run/resolvconf/resolv.conf的内容,删除它然后再次ln
  11. $ sudo rm /etc/resolv.conf
  12. $ sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf
  13. $ udhcpc -i wlan0 -q
  14. udhcpc: started, v1.30.1
  15. udhcpc: sending discover
  16. udhcpc: sending select for 192.168.223.189
  17. udhcpc: lease of 192.168.223.189 obtained, lease time 3599

执行完毕,就可以连接网络了。

  1. // 验证
  2. $ ifconfig
  3. $ ping baidu.com
  4. $ ping google.com
  5. // 保存连接
  6. $ wpa_cli -i wlan0 save_config
  7. // 断开连接
  8. $ wpa_cli -i wlan0 disable_network 0
  9. // 连接已有的连接
  10. $ wpa_cli -i wlan0 list_network // 列举所有保存的连接
  11. $ wpa_cli -i wlan0 select_network 0 // 连接第1个保存的连接
  12. $ wpa_cli -i wlan0 enable_network 0 // 使能第1个保存的连接
  13. // 断开wifi
  14. $ ifconfig wlan0 down
  15. $ killall udhcpc
  16. $ killall wpa_supplicant

编辑 保存WiFi的方法

  1. ip link set wlan0 up
  2. iw dev wlan0 scan | grep SSID
  3. vim /etc/wpa_supplicant/wpa_supplicant.conf
  4. network={
  5. ssid="ssid"
  6. psk="password"
  7. priority=1
  8. }
  9. wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -B
  10. dhclient wlan0

编辑一次后就可以在断电或复位后自动连接。

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/565041
推荐阅读
相关标签
  

闽ICP备14008679号