OpenWrt定时通过telnet远程重启桥接模式下的光猫
家里联通宽带,光猫桥接+OpenWrt主路由,运营商的光猫一般硬件配置都比较低,无法7x24不间断工作,我OpenWrt都设置一周自动重启一次,光猫里面没得设置自动重启,之前是用个白菜价的智能插座设置自动开断电来实现光猫的自动重启。
但前几日发现这个廉价的智能插座开始不正常,十几块的东西又懒得去修,又不舍得换个贵的。就想试试能不能通过软件层面实现自动重启。
首先是觉得光猫肯定也是个嵌入式liunx系统,一般至少有个telnet可以远程维护吧,上网搜了下,开启telnet的方法也挺简单。
备注下,我是联通HG261GU型号烽火的光猫,光猫IP没改,默认192.168.1.1,只是之前改了桥接,没用光猫拨号。
电脑直连光猫,设置IP是192.168.1.X网段,浏览器访问 http://192.168.1.1/logoffaccount.html
开启隐藏账户,
开启后才可以用工程号 fiberhomehg2x0
密码 hg2x0
进行登录
这个隐藏账户光猫每次重启都会禁用, 开启后进行设置开启telnet服务就可以了
telnet服务开启后是会保持开启状态,重启光猫也不怕
这里题外话说下,telnet进光猫后可以通过get telname
获取超级用户用户名 get telpwd
获取超级用户密码
这个超级用户是用来设置桥接等业务功能使用的,与本次目的没用关联,这里不多说。
telnet进去后可以发现这个嵌入式linux系统非常精简,基本啥都没,连crontab都没用,唯一有用的是还是有reboot命令的......
所以想让光猫自己定时重启不太可能,能也比较折腾,而且不想加重光猫负担。既然能telnet那我OpenWrt跑个定时脚本去重启光猫不就好了
这里就遇到另外一个问题,也是之前已经困扰我很久的问题。 上面说了,光猫是桥接模式,那么OpenWrt拨号后,就没法通过192.168.1.1访问到光猫。
所以首先要解决OpenWrt访问光猫的问题
- 新建一个接口,协议必须是静态地址,包括的接口是连接光猫的网口,ip和光猫同网段
- IPV6的都可以不用,设置使用网关跃点 100,这个接口我们就只是用来访问光猫
- 防火墙选择和wan口相同
这样设置后就可以访问到光猫了,那写个脚本telnet到光猫,再设置OpenWrt的crontab就好了
这里有个坑,OpenWrt貌似默认是没带telnet
客户端命令,反正我用的这个版本没有,最后发现可以用nc
.....
vi /home/reboot-modem.sh
#!/bin/bash
(sleep 2;echo admin;sleep 1; echo password;sleep 1;echo reboot;sleep 1)|nc 192.168.1.1 23
这里脚本用管道还是比较巧妙的
配置下crontab
50 3 * * 3 sh /home/reboot-modem.sh
好了,省下一个智能插座
若能结合热点事件分析,会更富时代性。
情感真挚自然,字里行间传递出强烈的感染力。
哈哈哈,写的太好了https://www.lawjida.com/