NetworkManager 显示错误的安全类型

NetworkManager 显示错误的安全类型

我正在开发一个向其接入点发送重新配置命令的应用程序。接入点应将自身重新配置为受 WPA2 保护,成为开放网络。接入点必须自行重新启动才能使配置生效。

我的问题是,在 AP 重新启动后,无论我做什么,NetworkManager 仍然显示 AP 具有 WPA2 安全性。我知道它不会,因为我可以在不输入密码的情况下连接到它。我还在 AP 的配置中确认它没有使用任何安全性。我能够解决此问题的唯一方法是关闭无线电然后再打开并通过 nmcli 重新发出扫描或重新启动 NetworkManager。

这两个选项在我的应用程序中都不太理想。我在 iwlist 扫描和 wpa_cli 扫描中重新发出了扫描,它确实显示了没有安全性的 AP。

我在运行 Ubuntu 16.04 的虚拟机和 Debian Stretch 开发机器中看到了这一点。

我试图了解 NetworkManager 在哪里接收其 AP 列表(假设它是 iwlist 或 wpa_cli),以及为什么它似乎正在缓存该安全类型。

答案1

NetworkManager 从 wpa_sypplicant 获取其扫描列表并将其缓存。然而,根据具体情况,它只会偶尔进行扫描或在客户端请求时进行扫描。原因是扫描会降低您的 WiFi 吞吐量和延迟。

尝试触发重新扫描,例如通过nmcli device wifi rescan.

当然,直接通过 D-Bus 或 libnm API 也可以实现同样的效果。

相关内容