使用客户端模式 WAN 连接在 DD-WRT 上通过 MAC 地址阻止 WiFi 接入点

使用客户端模式 WAN 连接在 DD-WRT 上通过 MAC 地址阻止 WiFi 接入点

我的路由器的 WAN 连接配置为连接到基于订阅的公共 WiFi 网络。我正在有效地扩展公共 WiFi 网络。

我已确定公共网络在我的路由器范围内有三个不同的接入点(均使用相同的 SSID,但在不同的信道上)

我已确定公共 WiFi SSID 的公共 WiFi AP 之一出现故障。我的路由器的 WAN 连接在良好的 AP 之间漫游时没有问题,但当它漫游到坏 AP 时,互联网访问就会中断,直到路由器漫游回其中一个良好的 AP。

我已经识别出好 AP 和坏 AP 的 MAC 地址。

鉴于公共 WiFi 网络不在我的控制之下,是否有办法在我的路由器上使用其 MAC 地址将故障接入点列入黑名单/阻止?

我的路由器是 Netgear WNDR3700v4,我用 DD-WRT 06-23-2014-r24461 刷机

http://manpages.ubuntu.com/manpages/hardy/man8/iwconfig.8.html

这个ap选择听起来iwconfig很有希望:

手册 iwconfig(8) ap

如果可能,强制卡注册到地址指定的接入点。此地址是无线扫描报告的接入点的单元标识,可能与其网络 MAC 地址不同。如果无线链路是点对点的,请设置链路另一端的地址。如果链路是临时的,请设置临时网络的单元标识。当连接质量过低时,驱动程序可能会恢复到自动模式(卡选择范围内的最佳接入点)。您也可以使用 off 重新启用自动模式而不更改当前接入点,或者您可以使用 any 或 auto 强制卡与当前最佳接入点重新关联。示例:iwconfig eth0 ap 00:60:1D:01:23:45

即使手动设置要连接的 AP,连接仍然会漫游到恶意 AP。

我尝试使用 DD-WRT 控制面板中无线安全中的“无线 MAC 过滤器”选项,虽然它们可以保存,但似乎没有任何影响。我怀疑这是因为适配器处于客户端模式,因此设置不适用。

我也尝试过iw这样的各种命令:

iw dev ath0 station del aA:BB:CC:DD:EE:FF

我竭尽全力/proc/net/希望找到可以读取和写入值的东西,但仍然没有运气。

跑步:

iw dev ath0 disconnect

导致连接重置,在我的测试中,适配器总是会自动重新连接到一个良好的接入点。但是,经过一段不确定的时间后,适配器又会漫游回不良接入点,互联网连接中断。

目前我能看到的唯一解决方案是编写自己的连接管理器,但如果不知道如何使用工具正确地做到这一点,那将会很困难。

答案1

根据 Daniel 的评论,startup.sh 可以修改以在声明中/tmp/ath0_wpa_supplicant.conf包含变量,然后向 wpa_supplicant 发出信号,告知它应该重新加载配置。bssid=<mac of good ap>network{}# kill -HUP "$(pidof "wpa_supplicant")"

这使适配器保持连接到接入点,并阻止漫游到其他接入点。

答案2

给你直接的答案,这样你不必花时间阅读整本字典:

在基于 ATHEROS 的 DDWRT 设备上 - 因此这在 Broadcom 上不起作用,如果通过 telnet 进入路由器并运行“ps”产生了一个名为 的过程,它将在你的设备上起作用wpa_supplicant

转到管理、命令,输入以下内容并保存为自定义脚本:

sed -i '7ibssid=xx:xx:xx:xx:xx:xx' /tmp/ath0_wpa_supplicant.conf

kill -HUP "$(pidof "wpa_supplicant")"

第一行在bssid=(mac address of upstream router)的第 7行插入该行wpa_supplicant,该行应位于网络部分。您可以使用less ath0_wpa_supplicant.conf来查看网络所处的范围,在文件夹中的 telnet 提示符下/tmp

第二行正如第一个回答者所说,重新开始wpa_supplicant

命令是复制粘贴的,原封不动。唯一需要做的更改是将上游 AP 的 MAC 替换为 xx:xx...

相关内容