|
本帖最后由 harleysue 于 2017-9-11 14:42 编辑
6号发布了预告,经过两天的测试和调教,脚本基本稳定,期间实现了四五次的自动切换,现正式发布第一版,主要包括如下功能:1、网络连通性检测:通过检测www.sina.com的连通性,当丢包率高于80%的时候,自动切换中继信号;
2、中继成功性检测:检测wan口的IP获取情况,当出现wan没获取到IP的时候,自动切换中继信号;
3、适配定时开关wifi功能:当wifi被定时关闭的时候,暂停中继检测(适用于定时开关wifi的情况),直到下次启动。
4、检测的间隔为1分钟;
存在问题:
1、由于个人水平有限,所以可能需要动手能力比较强的同学;
2、目前只适用中继两个不同的网络,有sh脚本基础的同学可以自己优化;
3、暂时只适用官方ROOT版本,其他版未测试。
4、由于官方版本缺少很多必要的运行程序,无法直接重启网络,因此每次切换,脚本都需要重启路由器,加上K3启动时间较长,每次切换大致需要3分钟时间;
使用流程:
1、先找出不同网络下的NVRAM配置:
先连接中继信号1,通过nvram show | grep wl查看本网络下的nvram配置
接着连接中继信号2,通过nvram show | grep wl查看本网络下的nvram
找出配置上的不同,原则上只需要找出连接的网络名和加密配置,大致为:
- wl0_ssid=中继信号名称
- wl0_wpa_psk=中继信号密码
复制代码 只需要这两个配置即可,其他配置可以忽略。
注意:wl0_wpa_psk这个配置,可能会因为上级路由加密方式不同而不同;
最后自己先用nvram set设置AP名和密码,然后nvram commit保存,手工重启,确保可以这个切换,再安装脚本。
2、修改脚本适配自己网络:
修改脚本底部的切换配置,修改AP1名称,AP1密码,AP2名称,AP3密码,实现中继切换:
- echo `date` "unconnect,start swith" >> /opt/switch_log
- oldssid=`nvram show | grep wl0_ssid`
- echo "$oldssid" |grep -q AP1名称
- if [ $? -eq 0 ]; then
- echo `date` "oldssid is AP1名称,switch to AP2名称" >> /opt/switch_log
- nvram set wl0_ssid=AP2名称
- nvram set wl0_wpa_psk=AP2密码
- sleep 10
- nvram commit
- reboot
- else
- echo `date` "oldssid is AP2名称,switch to AP1名称" >> /opt/switch_log
- nvram set wl0_ssid=AP1名称
- nvram set wl0_wpa_psk=AP1密码
- sleep 10
- nvram commit
- reboot
- fi
复制代码
3、安装脚本:
解压附件,将脚本suhlapv2.sh放到/opt/bin/下面,并且在winscp上面,右键属性,把三个X都打上勾,赋予脚本执行权限。
并且在/opt/started_script.sh后面加上自启动命令,最后重启路由即可。
4、查看运行情况:
路由每次重启后,需要等待五分钟会后,脚本才会开始进行网络检测,避免网络还没连接好,就开始检测,造成循环重启。
查看连通性检测日志:
查看切换日志命令:
其中连通性日志重启后清空,切换日志重启不清空。
如果运行有问题,直接删除脚本和自启动命令就好
写在最后,本人能力有限,用的好的点个赞,用的不好或者无效,也请绕道,谢谢!
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
查看全部评分
|