数码之家

 找回密码
 立即注册
搜索
查看: 4641|回复: 7

路由中继的信号掉线后自身的WIFI信号也跟着消失?写个小脚本让它自动重现

[复制链接]
发表于 2019-10-4 19:57:50 | 显示全部楼层 |阅读模式
本帖最后由 deyafe 于 2019-10-4 19:59 编辑

       用原生OPENWRT的系统做无线中继,都有可能会出现这样的现象,就是在被中继的WIFI信号因某些原因(如上级路由关机等情况)消失了,做中继的路由自身与被中继路由同频率的AP信号有可能也跟着消失(我现在用的版本看人品,有时会有时不会)。如果路由器还有有线设备连着,可以用有线设备进入路由器查看上级路由是否掉线;但如果路由器只做无线中继,挂在高处,不方便插网线连接的,出现这种情况只能怀疑是路由器死机了。
       我这里没拉宽带,上班只能用手机流量,没布网线,有时候需要两个路由来中继手机热点,而且水果手机开热点不能固定信道,就算把路由器的信道设定为AUTO有时候也不能自动连上,于是就写了个小脚本来解决这个问题,以下是脚本内容:
  1. #!/bin/sh
  2. ping -c 4 www.baidu.com  //ping百度4次,4次都不通就认为外网不通了
  3. if [ $? -ne 0 ] ;then  //$?是ping的结果,假如外网不通
  4.   {
  5.       AA=$(uci get wireless.@wifi-iface[?].disabled)  //AA是变量可以自己定义,括号里的命令是获取做客户端的SSID开关状态并赋予变量AA,wifi-iface[?]是SSID节点,通过uci show wireless查询
  6.       if [ ! $AA ] ;then AA="0" //因为SSID打开时disabled的值默认是没有的,所以要判断disabled的值是否存在,不存在就认为SSID处于打开状态,然后赋予变量AA值为0
  7.       fi
  8.       iwinfo wlan? scan > /tmp/wifi  //搜索热点信号列表并保存,wlan?是无线网卡,2.4g跟5.0g是不同的,这个要自己区分,可以通过ifconfig对比MAC查询
  9.       grep -qw "SSIDNAME" /tmp/wifi  //从保存的列表中寻找被中继的SSID是否存在,SSIDNAME是被中继的WIFI名称
  10.       if [ $? -eq 0 ] ;then  //假如被中继的SSID存在
  11.         if [ "$AA" = "1" ] ;then  //并且做客户端的SSID已经关闭
  12.           uci set wireless.@wifi-iface[?].disabled=0  //重新打开做客户端的SSID
  13.           uci -q commit  //保存
  14.           /etc/init.d/network restart  //重启网络
  15.         fi
  16.       elif [ "$AA" = "0" ] ;then  //假如被中继的SSID不存在并且路由器做客户端的SSID处于打开状态
  17.         uci set wireless.@wifi-iface[?].disabled=1  //那就关闭做客户端的SSID
  18.         uci -q commit  //保存
  19.         /etc/init.d/network restart  //重启网络
  20.       fi
  21.   }
  22. fi
  23. exit
复制代码
       可以用putty ssh进入路由通过VI命令或用WinSCP在/etc下新建一个脚本文件,不要在/tmp下建立,重启后就没有了,个人建议用WinSCP建立脚本文件,编辑方便点,脚本保存后记得用chmod +x赋予执行权限,然后直接在putty里输入/etc/脚本文件名 执行一次脚本,看脚本是否有问题,没有问题就可以通过定时任务执行这个脚本了。这样就能实现上级路由WIFI信号消失后自动关闭本路由上的无线clietn,上级路由WIFI信号恢复后重新打开本路由上的无线clietn,clietn关闭后AP信号是可以自动恢复的,不会出现时有时无的现象



发表于 2019-10-5 00:04:00 | 显示全部楼层
大佬,这很强大了。
回复 支持 反对

使用道具 举报

发表于 2019-10-5 00:44:47 | 显示全部楼层
脚本用什么运行?
回复 支持 反对

使用道具 举报

发表于 2019-10-5 10:15:28 | 显示全部楼层
本帖最后由 hydize 于 2019-10-5 10:23 编辑

这个好像是op自身设计上的问题?我手头一个充电宝路由器刷的op在家里调试好了,拿到单位就不能用了。但不一定什么时候,单位里能用,家里也能用,很随机。好像有个论坛放出过自动重置无线还是啥的一个ipk,但我那个机器没法安装。脚本通用性更好一点。不过请教一下:直接复制你这段脚本就行还是需要根据自己情况调整才能用?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-5 11:01:22 来自手机浏览器 | 显示全部楼层
新式 发表于 2019-10-5 00:44
脚本用什么运行?

crontab定时任务啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-5 11:04:50 来自手机浏览器 | 显示全部楼层
hydize 发表于 2019-10-5 10:15
这个好像是op自身设计上的问题?我手头一个充电宝路由器刷的op在家里调试好了,拿到单位就不能用了。但不一 ...

那个ipk很久没更新了,所以才自己想办法写了个脚本,某些参数肯定要结合实际的,注释都有说明,另外最好不要把注释也复制进去
回复 支持 反对

使用道具 举报

发表于 2019-10-10 21:04:11 | 显示全部楼层
貌似高通的u都是这样,用博通的吧,例如腾达的,设置方便,而且不会出现楼主所述现象
回复 支持 反对

使用道具 举报

发表于 2020-7-18 08:24:50 | 显示全部楼层
很好,很强大,实现了希望的功能
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-26 07:55 , Processed in 0.156000 second(s), 11 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表