我的路由器的 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")"
这使适配器保持连接到接入点,并阻止漫游到其他接入点。
- http://wiki.gentoo.org/wiki/Wpa_supplicant
- 手动 wpa_supplicant
- (Debian)/usr/share/doc/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...