如何设置WiFi网络优先级?


13

我了解可以通过添加来设置多个WiFi/etc/wpa_supplicant/wpa_supplicant.conf(如通过命令行设置WiFi中所述)。

比方说,我有两个WiFis注册:wifi_Awifi_B

当我拔下路由器wifi_A并重新启动树莓派至命令行时,它会自动连接到wifi_B。当我拔下路由器wifi_B并重新启动树莓派至命令行时,它会自动连接到wifi_A。到目前为止,一切都很好。

但是,假设两个路由器都可用,如何设置优先级?例如,我想让Raspberry wifi_B在重启时连接到吗?

我的第二个问题是:假设我处于命令行模式,并且当前已连接到wifi_B。我该如何连接wifi_A


除非您列出您的配置文件,否则您只会得到很多猜测(充其量)。
Milliways

Answers:


10

例如,我想让我的树莓wifi_B在重启时连接到吗?

添加priority=2wifi_B块和文件中priority=1wifi_A/etc/wpa_supplicant/wpa_supplicant.conf

假设我处于命令行模式,目前已连接到wifi_B。我该如何连接wifi_A

您可以为每个SSID创建一个单独的配置文件,并明确指定它:

wpa_supplicant -B -Dwext -iwlan0 -c</path/to/config_for_wifi_A>
sudo dhclient wlan0

使用您的方法,我只能从一个WiFi网络切换到另一个WiFi网络,无法切换回来(例如,也不能切换到另一个WiFi_C)。使用wpa_supplicant命令执行第一开关后,再次使用它,我会收到一条消息ctrl-iface exists and seems to be in use - cannot override it\ n Delete '/var/run/wpa_supplicant/wlan0' manually if it is not used anymore等...并且sudo dhclient wlan0被告知RTMETLINK answers: File exists。这是期望吗?
calocedrus

您需要先关闭与的连接,wpa_cli terminate然后再与进行连接wpa_supplicant,还有一种更复杂的方法无需在此处
Z-WolF

19

但是,假设两个路由器都可用,如何设置优先级?

您可以如下设置网络优先级:

network={
    ssid="wifi_A"
    psk="passwordOfA"
    priority=1
}
network={
   ssid="wifi_B"
   psk="passwordOfB"
   priority=2
}

默认情况下,所有网络的优先级为0,根据您的需要设置更高的优先级以进行优先级排序。

假设我处于命令行模式,当前已连接到wifi_B。我该如何连接到wifi_A?

为此,请使用命令:

wpa_cli select_network 0

转换wifi_Awifi_B使用:

wpa_cli select_network 1

2
要检查要使用的号码wpa_cli select_network #wpa_cli list_networks请先运行。
Z-WolF '18年

1
对于使用Stretch 3的Pi 3+,这对我不起作用。运行wpa_cli list_networks并获取网络号,然后运行wpa_cli select_network2。系统响应OK,但iwconfig显示它仍连接到原始网络。
lonstar

8
为了清楚起见,请注意:该priority值是较高的值,表示较高的优先级。即,未按数字/计数顺序(先为零)选择网络。
尼古拉斯·
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.