如何在 Linux 上控制无线 AP 之间的切换?

And*_*ier 7 linux debian wireless-networking wireless-access-point crunchbang

因为我家的墙壁很厚,无线信号衰减很严重,所以我家的不同部分有两个接入点,配置在相同的 SSID 上,设置相同。两者都运行良好。然而,与该用户观察到的情况类似,我发现将我的笔记本电脑从一个房间移到另一个房间并不会导致它足够快地切换接入点;要么它的重新扫描频率太低,要么信号质量阈值太低,或两者兼而有之。这会导致网络无响应的长时间令人恼火。

我可以在 Linux 上完全控制它吗?(这是我的笔记本电脑运行的 - 更具体地说,如果重要的话,我有CrunchBang,Debian 变体)。如果可能的话,我希望能够改变该信号阈值和/或重新扫描周期,使其在切换时更加积极。

小智 6

网络管理器需要一段时间才能确定连接不会恢复,然后才会尝试重新连接。我发现wicdNetworkManager- 我会考虑切换到那个更“敏感” 。

您还可以运行一个后台脚本来轮询信号强度并在信号超出某个级别时强制断开连接。一旦断开连接,您的网络管理员通常会连接到信号更强的网络。

使用iw(1)来自iw包的示例脚本:

#!/bin/bash
IFACE="wlan0"
LIMIT="-75"
while true; do
        signal=$(iw $IFACE link | grep signal | awk '{print $2}')
        [ $signal ] && [ $signal -lt $LIMIT ] && iw $IFACE disconnect
        echo $signal
        sleep 1
done
Run Code Online (Sandbox Code Playgroud)


小智 5

接入点之间的漫游由 管理wpa_supplicant,因此要切换到特定接入点而不断开连接的时间超过所需时间,请使用wpa_cli roam。例如:

rav@fred:~$ sudo wpa_cli -i wlp58s0 scan_results 
bssid / frequency / signal level / flags / ssid
60:45:cb:94:d1:50   2447    -47 [WPA2-PSK-CCMP][ESS]    NextDoorBut1
cc:e1:d5:7c:af:a8   2417    -75 [WPA2-PSK-CCMP][WPS][ESS]   NextDoorBut1
10:6f:3f:4c:54:83   2427    -70 [WPA2-PSK-CCMP][ESS]    NextDoorBut1

rav@fred:~$ sudo wpa_cli -i wlp58s0 roam 60:45:cb:94:d1:50
OK
Run Code Online (Sandbox Code Playgroud)

当然,这仅适用于在同一 SSID 上的 AP 之间切换 - 并且需要您事先进行一些研究以找出每个 AP 的 BSSID。