将小米路由改做服务器——使用telnet控制光猫定时重启

用的光猫比较老,没有定时重启功能,用一段时间后网速变卡,直至死机。放在入户的箱子里,之前都是手动拔电源重启,很麻烦。想了3个办法:

1.搞个智能插座来定时重启(嫌贵,放弃)

2.破解光猫写个脚本进光猫里定时重启(光猫的Linux用的BusyBox v1.11.3没有crontab,文件权限获取艰难,设置定时任务麻烦,加重光猫负载,放弃)

3.用闲置的小米路由器定时远程控制光猫后发送reboot指令(用telnet)。(优秀,采纳)

注:同时还写了一个Windows上的bat也可以实现随时重启控制。文末也放出来。

 路由器其实就是一个可以长期稳定待机的Linux电脑。本文的思路其实还可以引申来做更多的事情,比如为自己量身定制的远程控制,定时抓取监控,NAS等。

本文使用的工具和硬件:

1.光猫:吉比特烽火(HG261GS)

2.路由器:小米路由器mini

原理:路由器----->telnet----->光猫(重启)

1.小米路由器刷机到开发版,开启SSH。

进http://www1.miwifi.com/miwifi_download.html,下载开发版ROM

将小米路由改做服务器——使用telnet控制光猫定时重启_第1张图片

电脑连接小米路由器,登入http://miwifi.com/

将小米路由改做服务器——使用telnet控制光猫定时重启_第2张图片

点击“系统升级” 后手动升级,选择下好的ROM。

将小米路由改做服务器——使用telnet控制光猫定时重启_第3张图片

 等待刷机完成后,进入小米开放http://www1.miwifi.com/miwifi_open.html,开启SSH工具。

将小米路由改做服务器——使用telnet控制光猫定时重启_第4张图片

 根据提示,获得root密码并完成SSH的开启。

将小米路由改做服务器——使用telnet控制光猫定时重启_第5张图片

 2.使用putty,登入小米Linux。(用户名:root。密码是上一步获得的)

 将小米路由改做服务器——使用telnet控制光猫定时重启_第6张图片

 3.写个shell脚本放到小米的定时任务中。实现定时控制光猫重启。

#在mnt文件夹创建rebootMao.sh脚本
cd /mnt
touch rebootMao.sh
vim rebootMao.sh

 编辑rebootMao.sh,vim进去后,i键编辑,Esc退出编辑, shift+:后 wq 回车保存并退出。

#打开下面这个网址,设置光猫的telnet开启,telnetenable=0的话就是关闭。
curl -I http://192.168.1.1/cgi-bin/telnetenable.cgi?telnetenable=1
sleep 2
#用管道重定向 | 前的输入作为telnet 192.168.1.1的输出。
(sleep 2;echo root;sleep 1; echo hg2x0;echo reboot;sleep 1)|telnet 192.168.1.1

注:这里telnet 192.168.1.1 进入 telnet服务 用户名输入 root 密码 hg2x0。这个是光猫HG261GS的。我从网上碰巧找到的,其他型号的自行百度。

 如下是已经touch rebootMao.sh创建好后进行编辑。将小米路由改做服务器——使用telnet控制光猫定时重启_第7张图片

 此时,若运行脚本,光猫就会重启。

sh rebootMao.sh # 运行脚本,重启光猫

 4.脚本加入路由器的定时任务。

crontab -e

将小米路由改做服务器——使用telnet控制光猫定时重启_第8张图片

每周四的00:00重启光猫。

---------------------------------------------------------------------------------------------------------------------------------

下面简单介绍Windows上写bat实现随时重启控制。

一.先看分步手动执行的原理:

1.通过网页http://192.168.1.1/cgi-bin/telnetenable.cgi?telnetenable=1,开启光猫的telnet。

将小米路由改做服务器——使用telnet控制光猫定时重启_第9张图片

2.在cmd中使用 telnet远程进入光猫。

输入telnet 192.168.1.1 进入 telnet服务 用户名输入 root 密码 hg2x0

如果提示没有 telnet命令的话,就是window的远程telnet没开。解决:

控制面板》程序和功能》启用或关闭windows功能》打勾“tlenet客户端”

此时如果执行reboot,光猫就会重启。

将小米路由改做服务器——使用telnet控制光猫定时重启_第10张图片

二.写一个bat,整合上面的所有操作步骤 

写了一个:重启光猫.bat 来一键操作重启

将小米路由改做服务器——使用telnet控制光猫定时重启_第11张图片

代码如下:

@echo off
echo set sh=WScript.CreateObject("WScript.Shell") >telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "root{ENTER}" >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "hg2x0{ENTER}">>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "reboot{ENTER}">>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
start /min http://192.168.1.1/cgi-bin/telnetenable.cgi?telnetenable=1
ping -n 3 127.1>nul
taskkill /im iexplore.exe /f
start telnet 192.168.1.1
cscript //nologo telnet_tmp.vbs
echo message
taskkill /im telnet.exe /f
del telnet_tmp.vbs

 注意:本例的核心就是telnet到光猫发送重启命令,但是不同的光猫telnet的用户名密码不一样,但是原理是一样的。

你可能感兴趣的:(linux,shell,telnet,ssh,路由器)