2

我正在尝试实现一个代码,该代码使用 wpa_cli 和 iw 来配置/添加/删除/测试我的 wpa conf 的新网络条目。

要添加新网络,我的过程是:

wpa_cli list_network

我的新条目已经存在?是的-> 删除它

wpa_cli add_network -> 创建条目为 id 42 的空条目

wpa_cli set_network 42 ssid '"tutu"'

wpa_cli set_network 42 psk '"我的密码"'

wpa_cli 启用 42

wpa_cli 保存配置

-> 使用新条目更新 wpa_conf 文件

wpa_cli 选择网络 42

-> 使用此命令测试连接,仅在 10 秒内每秒检查一次此网络条目,iw dev wlan0 链接结果检查 ssid/psk 信息是否良好。

我不太确定这个过程。而且,似乎某处有缓存。如果我用假 psk 替换现有条目,我总是连接到该条目。

例子 :

我有这样的无线网络设置:ssid:tutu 密码:mypassword

由于我的过程,我添加了配置 tutu/mypassword。在 select_network 之后,iw 链接显示“已连接”。伟大的。

现在我使用相同的过程添加配置 tutu/badpassword。旧的配置被删除。即使新密码错误,select_network 和 iw 链接也始终成功...

编辑 :

我在这里找到了一些很好的信息来验证我的流程:http ://rtl8192cu.googlecode.com/hg-history/bdd3a2265bdd6a92f24cef3d52fa594b2844c9c1/document/wpa_cli_with_wpa_supplicant.pdf

但我总是有些失败。我在 wifi 连接上运行耐力测试。在 100 次具有良好 ssid/psk 的测试中,99 次成功,1 次失败。

4

1 回答 1

0

当 conf 更改或配置保存时,使用

wpa_cli 重新配置

然后 wpa-supplicant 将重新读取其配置文件

于 2018-12-07T07:47:41.930 回答