网关支持WiFi 2.4G无线功能,内置了WiFi模组,可以连接到其他WiFi热点。

WiFi天线座实物图如下:

准备工作
WiFi模块通过USB信号和系统相连接,使用lsusb可以看到USB总线是否已经识别到设备。

root@gw102d512e4:~# lsusb
Bus 002 Device 003: ID 0bda:f179 Realtek Semiconductor Corp.
Bus 001 Device 002: ID 1782:4d11 Spreadtrum Communications Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

这里看到0bda:f179 Realteck Semiconductor就是WiFi设备,说明已经识别成功了。

检查WiFi驱动是否已经加载成功,是否有wlan0设备。

root@gw102d512e4:~# dmesg| grep rtl8188
[ 1073.079427] usbcore: registered new interface driver rtl8188eu
root@i2x-6ub-gw:~# ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr 00:13:EF:F5:35:6A
          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)

以上两点可以确认USB WiFi模块已经被系统识别,并且驱动也正常工作。

wpa_supplicant命令连接网络
连接前需要先配置好WiFi的接入信息,WiFi热点名称和密码。使用wpa_passphrase可以方便的生成需要的配置文件,这里举例我们需要连接的WiFi名称为i2SOM,密码为helloworld。

root@gw102d512e4:~# wpa_passphrase "i2SOM" > wifi.conf
helloworld

然后使用wpa_supplicant命令可以连接WiFi网络

root@gw102d512e4:~# wpa_supplicant -B -c wifi.conf -i wlan0
Successfully initialized wpa_supplicant

不要多次执行wpa_supplicant命令,可以用ps命令来查看是不是已经有wpa_supplicant命令已经运行了。

如果有,可以使用kill命令来结束对应的进程

网关默认对wlan0设备,在systemd上配置为DHCP获取IP地址。配置文件内容如下:

root@gw102d512e4:~# cat /etc/systemd/network/wlan0.network
[Match]
Name=wlan0

[Network]
DHCP=yes

也可以改为静态IP地址,修改内容为如下

root@gw102d512e4:~# cat /etc/systemd/network/wlan0.network
[Match]
Name=wlan0

[Network]
Address=192.168.8.100/24

如果没有在systemd上配置wlan0设备,也可以使用udhcpc手动从连接的网络的网关设备,获取到IP地址。

root@gw102d512e4:~# udhcpc -i wlan0
udhcpc: started, v1.29.2
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending select for 192.168.2.122
udhcpc: lease of 192.168.2.122 obtained, lease time 86400
/etc/udhcpc.d/50default: Adding DNS 192.168.2.1

现在就可以使用ping命令来测试与WiFi网络内其他设备的连通性了。

如果需要访问互联网,可以设置DNS地址。

root@gw102d512e4:~# echo "nameserver 114.114.114.114" > /etc/resolv.conf
root@gw102d512e4:~# echo "nameserver 8.8.8.8" >> /etc/resolv.conf

root@gw102d512e4:~# ping baidu.com
PING baidu.com (220.181.38.148) 56(84) bytes of data.
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=52 time=21.2 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=52 time=21.1 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=3 ttl=52 time=21.2 ms

systemd使用wpa_supplicant服务
wpa_supplicant服务默认使用/etc/wpa_supplicant/wpa_supplicant-wlan0.conf文件作为配置文件,如果没有请手动创建目录和相应文件。文件内容如下

root@gw102d512e4:~# cat /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
update_config=1

network={
}

使用systemd启动wpa_supplicant服务

systemctl enable wpa_supplicant@wlan0
/etc/systemd/system/multi-user.target.wants/wpa_supplicant@wlan0.service
systemctl start wpa_supplicant@wlan0

检查服务是否启动成功

使用systemctl status命令可以查看服务是否有异常退出的信息,没有说明启动正常

systemctl restart systemd-networkd

使用ps命令来查看wpa_supplicant进程是否运行

root@gw102d512e4:~# ps | grep wpa_supplicant
  932 root      8992 S    /usr/sbin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-wlan0.conf -iwlan0
 1085 root      2388 S    grep wpa_supplicant

以上说明wpa_supplicant服务已经运行了。

wpa_supplicant服务在后台运行,可以通过wpa_cli命令来对网络配置。

搜索和查看当前环境下可连接的WiFi网络

wpa_cli -i wlan0 scan
wpa_cli -i wlan0 scan_result
scan是搜索,scan_result是显示搜索的结果。

查看当前网络连接状态

wpa_cli -i wlan0 status
查看已经配置的WiFi设置,可以有多个配置,每个配置由network id来区分。

获取已经配置的wifi设置

wpa_cli -i wlan0 list_networks

新建WiFi配置,会返回network id,比如0,1,2

wpa_cli -i wlan0 add_network

设置WiFi的SSID名称

wpa_cli -i wlan0 set_network 0 ssid '"TP-LINK"'

设置WiFi的BSSID名称,如果WiFi名称中有空格或特殊字符,建议使用BSSID来连接网络。

wpa_cli -i wlan0 bssid 0 00:11:22:33:44:55

如果要连接加密方式是[WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS] (wpa加密)

wpa_cli -i wlan0 set_network 0 psk '"psk"'

如果要连接加密方式是[WEP][ESS] (wep加密)

wpa_cli -i wlan0 set_network 0 key_mgmt NONE
wpa_cli -i wlan0 set_network 0 wep_key0 '"psk"'

如果要连接加密方式是[ESS] (无加密)

wpa_cli -i wlan0 set_network 0 key_mgmt NONE
wpa_cli -i wlan0 enable_network 0

新配置的wifi默认是禁用的,启用,启用后如果没有连接wifi,新增wifi可见就会自动连接的

wpa_cli -i wlan0 enable_network 0

保存wifi配置,最好在启用wifi后再保存,否则保存的wifi是默认禁用的

wpa_cli -i wlan0 save_config

如果有多个WiFi配置,可以通过如下命令选择WiFi配置

wpa_cli -i wlan0 select_network 0
作者:陈小龙  创建时间:2024-09-14 17:12
最后编辑:陈小龙  更新时间:2024-09-14 21:57
上一篇:
下一篇: