南人 发表于 2016-9-25 23:34

ddwrt自动踢弱信号终端

我家里三层小楼房,每层装了一个刷DD的路由关dhcp作ap用,看了dato水桶原理的帖子后,发现我正需要这个自动踢弱信号的功能。
本人什么都不懂,对这些命令啊脚本啊更是一窍不通。。
于是我把脚本复制到“管理”的“指令”里,保存为启动指令后重启路由,
先连上一楼的信号然后跑上三楼,手机显示只有一点信号了,连网页都打不开了它还死连着一楼的信号。好像没什么作用
我又试点运行命令,不行。又保存自定义指令,也是不行。
来回折腾了几个小时,都是不行。爬楼梯都快爬断气了。

在接下的几天里,基本上不眠不休折腾了几天。期间学习了大量的linux命令。终于有了一点眉目,已经能显示弱信号的mac和信号强度,但还是不踢掉
差点就放弃了,想想又不甘心。又再潜心学习了几天,才发现原来是新版DD的iwpriv命令不能正常工作。,抱着试试看的心态刷了个10年的版本。居然能踢掉了。
最后把脚本存为自定义指令,再在cron里设定每分钟运行一次脚本,等于一分钟踢一次弱信号。终于可以正常使用了。高兴之情,无以言表。。。。。。。。。。。(个中曲折离奇,就不一一细说了。。说多都 是泪啊。。。。。多次试验后证实11年6月前的DD版本可用,之后的就不行了)


但这方法有个问题,AP的可用内存会越来越少,三天内必死,必需重新上电才行,虽然可以设定每天定时重启,但心里始终不舒服


又一个多月的学习研究(都 是泪啊!!!)
用以下脚本 ,终于可以完美稳定运行,(每分钟踢一次改进为每秒踢一次。基本接近无缝漫游的效果。内存不再越来越少)


一,管理-命令。把以下脚本存为自定义指令
#!/bin/sh
#for i in `arp -a | cut -d ' ' -f4`;
for i in `wl_atheros $(nvram get ath0_ifname) assoclist | cut -d" " -f2`;
do
ALL_count=$(wl_atheros rssi $i | cut-d"-" -f2)
if [ $ALL_count -gt 80 ] ;then
mac=$i
iwpriv ath0 kickmac $i
fi
done二,把以下脚本存为开机指令
#!/bin/sh
set j=2
while true
do
/tmp/custom.sh
sleep 1
done

其实我上面乱七八糟打了这么多字,真正用意是想问一下论坛里的大侠。高人,有谁知道12年后的ddwrt有什么命令可以实现 iwpriv ath0 kickmac 的效果,如能指点一二,小弟将感激不尽,终生铭记。。。

celsky 发表于 2016-10-15 23:33

南人 发表于 2016-10-1 21:59
请问兄台,山寨UBNT网桥(7241+9287)刷12年后的DD,改成什么程序了。我现在发现11年的用这个脚本内存还 ...

因为我没用过,所以具体情况我也不了解。就我来说,我的是用hostapd来发射的wifi,所以使用hostapd_cli deauthenticate MAC地址 就可以让客户端下线。
你要看具体是什么模式你可以用iwconfig看。
至于脚本内存越占越多,那是因为你是用单循环来搞的,而且虽然sleep了1秒,但是平均占用率可不低。建议使用cron来实现定时任务,周期降到5s(不得不说Linux上软件质量还是有待提高)。
至于wifi切换那是客户端的问题了,自动切换应该是wifi芯片快进入休眠模式的时候,它会扫描下再切换,为的是不打断你当前任务、节能。

见坏就收丶丶 发表于 2016-9-25 23:56

感谢楼主分享经验!我收藏了

765360030 发表于 2016-9-26 01:48

支持折腾。。。。{:1_1:}

liveasx 发表于 2016-9-26 04:14

mark 有需要时使用

121991661 发表于 2016-9-26 08:23

帮顶,谢谢楼主,这宝贵的实战经验……。

jixianwu 发表于 2016-9-26 08:45

踢自己吗?何不在终端设置?

wsh9308 发表于 2016-9-26 09:38

这个还是很实用的,谢谢楼主的分享,谢谢,顶上!

zhaocz 发表于 2016-9-26 10:01

本帖最后由 zhaocz 于 2016-9-26 10:04 编辑

其实我们都没有进到楼主这一步,只能是向楼主学习了!https://forum.openwrt.org/viewtopic.php?id=48893
openwrt 论坛上也只说到这个。

wlan_xx 发表于 2016-9-26 10:09

我也说一句,记得某些路由器支持弱信号踢出,ub也支持的吧。

skyforme 发表于 2016-9-26 11:19

Anywlan因您更精彩!

南人 发表于 2016-9-26 20:24

jixianwu 发表于 2016-9-26 08:45
踢自己吗?何不在终端设置?

我也想在终端设置。。
这个以前研究过一段时间了,家里大大小小各种手机平板居然都找不到设置的地方(可能是咱穷人用低端货的原因吧,呵呵)
倒是一个朋友的OPPO R1C,各个同名称同密码的AP连过一次之后,不管当前连接的AP信号多好,只要另一个信号比当前强20db,1--20秒内就自动切换到强信号的AP上。其他水果鸭梨的机型咱没有就没试过了。

lichuang0503 发表于 2016-9-26 20:54

这个nb。。。需要。。上个星期还找资料呢。。我自己就是个小白。。{:1_1:}
页: [1] 2
查看完整版本: ddwrt自动踢弱信号终端