WiFi功能
网关支持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 21:57