WiFi 网络测试

QuecPi Alpha 单板电脑支持 QCA1023 SDIO Wifi。本文介绍如何使用 wpa_supplicant 连接Wi-Fi热点。
wpa_supplicant 是一个用户空间的程序,主要用于在 Linux 系统中管理 Wi-Fi 连接。以下教程将演示如何通过 wpa_supplicant 连接到两个不同类型的 Wi-Fi 热点:开放的 Wi-Fi 热点和 WPA2 加密的 Wi-Fi 热点。

网络配置

连接开放热点

wpa_supplicant 的配置文件通常是 /etc/wpa_supplicant.conf,你需要根据你的 Wi-Fi 网络类型来配置它。设置完成并且保存。

ctrl_interface=/var/run/wpa_supplicant 
update_config=1 
network={
    ssid="Your_SSID"
    key_mgmt=NONE
} 

然后执行 wpa_supplicant 命令去连接热点。

wpa_supplicant -D nl80211 -c /etc/wpa_supplicant.conf -i wlan0 &

连接成功后, 使用 wpa_cli 命令可以查询连接状态, 以下显示则表示连接成功。

root@qcm6490-idp:~# wpa_cli status
Selected interface 'wlan0'
bssid=f8:5e:3c:01:f8:18
freq=2462
ssid=Your_SSID
id=0
mode=station
wifi_generation=4
pairwise_cipher=NONE
group_cipher=NONE
key_mgmt=NONE
wpa_state=COMPLETED
ip_address=192.168.31.137
p2p_device_address=ce:a2:4c:65:b1:7e
address=00:03:7f:50:00:01
uuid=c6a00688-ca5e-53f5-981e-6f507c5c2820

使用 udhcpc 命令,通过 DHCP 获取 IP。

udhcpc -i wlan0

显示以下内容则成功连接:

root@qcm6490-idp:~# udhcpc -i wlan0
udhcpc: started, v1.35.0
udhcpc: broadcasting discover
udhcpc: broadcasting select for 192.168.31.137, server 192.168.31.1
udhcpc: lease of 192.168.31.137 obtained from 192.168.31.1, lease time 43200
/etc/udhcpc.d/50default: Adding DNS 192.168.31.1

连接加密热点

wpa_supplicant 的配置文件通常是 /etc/wpa_supplicant.conf,你需要根据你的 Wi-Fi 网络类型来配置它。设置完成并且保存。

ctrl_interface=/var/run/wpa_supplicant 
update_config=1 
network={
    ssid="Your_SSID"
    psk="Your_Password"
    key_mgmt=WPA-PSK
}

然后执行wpa_supplicant命令去连接热点。

wpa_supplicant -D nl80211 -c /etc/wpa_supplicant.conf -i wlan0 &

连接成功后,使用 wpa_cli 命令可以查询连接状态,以下显示则表示连接成功:

root@qcm6490-idp:~# wpa_cli status
Selected interface 'wlan0'
bssid=c6:df:30:c2:09:14
freq=5745
ssid=你的SSID
id=0
mode=station
wifi_generation=5
pairwise_cipher=CCMP
group_cipher=CCMP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
ip_address=192.168.253.211
p2p_device_address=00:03:7f:50:00:01
address=00:03:7f:50:00:01
uuid=639ce5ef-b620-596c-a9e2-6af204e0ee6f
ieee80211ac=1

使用udhcpc 命令,通过 DHCP 获取IP。

udhcpc -i wlan0

显示以下内容则成功连接:

root@qcm6490-idp:~# udhcpc -i wlan0 
udhcpc: started, v1.35.0
udhcpc: broadcasting discover
udhcpc: broadcasting select for 192.168.253.211, server 192.168.253.178
udhcpc: lease of 192.168.253.211 obtained from 192.168.253.178, lease time 3599
/etc/udhcpc.d/50default: Adding DNS 192.168.253.178

使用 ifconfig 命令查看网络接口地址:

root@qcm6490-idp:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 32:C0:A2:09:FE:40  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:167 Base address:0x1000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:75 errors:0 dropped:0 overruns:0 frame:0
          TX packets:75 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:6301 (6.1 KiB)  TX bytes:6301 (6.1 KiB)

p2p0      Link encap:Ethernet  HWaddr 02:03:7F:D6:00:01  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan0     Link encap:Ethernet  HWaddr 00:03:7F:50:00:01  
          inet addr:192.168.253.211  Bcast:192.168.253.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3421 errors:0 dropped:0 overruns:0 frame:0
          TX packets:61 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3000 
          RX bytes:151273 (147.7 KiB)  TX bytes:7300 (7.1 KiB)

可以发现 wlan0 口已经获取 IP。

测试网络

执行 ping 命令测试网络连接:

  • 执行 ping 192.168.1.1 命令,如果 ping 通则表示局域网网络连接正常【这里的目的 ip 需要修改为实际网络的网关地址】。
  • 执行 ping 114.114.114.114 命令,如果 ping 通则表示外网网络连接正常。
  • 执行 ping baidu.com 命令,如果 ping 通则表示外网网络连接正常且 DNS 解析功能正常。