wpa_supplicant 不会自动更改 AP

Aki*_*ito 6 wpa-supplicant debian wlan access-point wpa-cli

(我花了几个小时试图找到一种解决方法,事实证明这比最初预期的要困难得多。)

不过,问题本身很容易理解。我最近在我的一台机器上安装了一个无 GUI 的 Debian 衍生产品并进行了配置/etc/wpa_supplicant/wpa_supplicant.conf为访问我的一个接入点,效果很好。

很快我就带着我的机器出门了,所以我添加了另一个网络(这次是我的热点模式的手机)到 wpa_supplicant.conf. 可悲的是,我注意到即使在失去与初始路由器的连接后它也不会自动连接到手机的 AP,然后是wpa_cli --reconfigure. 有趣的部分:取消注释中的第一个网络wpa_supplicant.conf使我手机的 AP 工作完美无缺。如果两个网络都保持未注释,则只有第一个有效。

我正在阅读整个手册 wpa_supplicant.conf但最接近我需要的是BSSID选项,它在这种情况下没有帮助。

所以我的问题是:如何更改网络控制器根据这些接入点的可用性来接入点?

更新: 我没有/usr/share/doc/wpa_supplicant/README.modes,但只有/usr/share/doc/wpa_supplicant/README.modes.gz因为符号链接太多而无法提取。

我的/etc/wpa_supplicant/wpa_supplicant.conf:

country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid="Klaus B. Schuldiger"
scan_ssid=1
psk="----"
}

#network={
#ssid="Xperia XZ_acd9"
#scan_ssid=1
#psk="----"
#}
Run Code Online (Sandbox Code Playgroud)

dir*_*rkt 2

要调试 wpa_supplicant 正在执行的操作,wpa_cli status将提供有关 wpa_supplicant 是否仍然认为它已连接到 AP 或正在搜索新 AP 的信息。

Wpa_supplicant需要处于漫游模式才能在网络之间自动切换。您可以通过使用中 节wpa-roam后面的条目来启用漫游,并将所有网络放入一个文件中(通常为)。详细信息可以在 wpa_supplicant 文档中找到。iface/etc/network/interfaceswpa_supplicant.conf/etc/wpa_supplicant/wpa_supplicant.confREADME.modesREADME.modes.gz

隐藏的接入点 (AP) 会因两个原因造成麻烦:一方面,需要主动配置 wpa_supplicant 来扫描所有接入点(我不知道如何配置的详细信息)。另一方面,WLAN 客户端将无法确定连接是否仍然有效,因为 AP 不会发送可测量的信标。因此,客户端看到的只是传输的数据包没有答案,这也可能是由网络中其他地方的问题引起的。客户端最终将使连接超时,但这可能需要几分钟的时间。

此外,隐藏的 AP 并不能真正提高安全性:隐藏的 AP 和客户端之间的流量可能会被嗅探,从而泄露 AP 的存在。主动扫描 AP 的客户端也会泄露其存在(并且由于它主动扫描它所知道的所有隐藏 AP,因此会提供更多信息)。

因此,最简单的解决方案是使所有 AP 变为非隐藏,以防它们引起问题。