切换WIFI连接¶
如果有多个无线AP,有时候需要切换连接到不同AP上进行工作(例如临时切换到手机共享的热点上)。假设我们已经在 /etc/wpa_supplicant/wpa_supplicant.conf
中配置好了不同AP的连接配置(账号密码),那么怎么按需切换到不同WIFI连接呢?
首先 使用wpa_supplicant连接无线网络 ,确保
/etc/wpa_supplicant/wpa_supplicant.conf
包含了需要连接的不同WIFI的配置(密码)wpa_cli
提供了切换网络的功能:wpa_cli -i wlan0 list_networks
显示:
network id / ssid / bssid / flags
0 alibaba-inc any
1 Air any [DISABLED]
2 CMCC-Xidu-5G any [CURRENT]
3 pixel_1598 any [DISABLED]
使用AP对应的数字来进行切换(第一列),例如要切换到 pixel_1598
则执行:
wpa_cli -i wlan0 select_network 3
备注
切换到 pixel_1598
,但是反过来切换到 CMCC-Xidu-5G
(5G WIFI)存在问题,未解决(虽然 wpa_supplicant.conf
已经配置了 country=CN
)
此外
wpa_cli
提供了交互方式切换网络,通过调整不同wifi连接的优先级priority
来交互切换,举例如下:
# wpa_cli
wpa_cli v2.10
Copyright (c) 2004-2022, Jouni Malinen <j@w1.fi> and contributors
This software may be distributed under the terms of the BSD license.
See README for more details.
Selected interface 'wlan0'
Interactive mode
> list_networks
network id / ssid / bssid / flags
0 alibaba-inc any
1 Air any
2 CMCC-Xidu-5G any [CURRENT]
3 pixel_1598 any
> get_network 2 priority
0
> get_network 3 priority
0
> set_network 3 priority 2
OK
> reassociate
OK
<3>CTRL-EVENT-SCAN-STARTED
<3>CTRL-EVENT-SCAN-RESULTS
<3>CTRL-EVENT-DISCONNECTED bssid=54:16:51:11:25:e6 reason=3 locally_generated=1
<3>CTRL-EVENT-DSCP-POLICY clear_all
<3>Trying to associate with SSID 'pixel_1598'
<3>CTRL-EVENT-REGDOM-CHANGE init=CORE type=WORLD
<3>Associated with e2:c9:d3:f2:d4:e5
<3>CTRL-EVENT-CONNECTED - Connection to e2:c9:d3:f2:d4:e5 completed [id=3 id_str=]
<3>CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
> list_networks
network id / ssid / bssid / flags
0 alibaba-inc any
1 Air any
2 CMCC-Xidu-5G any
3 pixel_1598 any [CURRENT]