V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
tux
V2EX  ›  分享创造

路由看门狗,终于搞成了

  •  
  •   tux · 2015-10-19 11:40:38 +08:00 · 3373 次点击
    这是一个创建于 3322 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这是上次发的想法 https://www.v2ex.com/t/211394
    再补充一点,路由上开了科学上网,还有 2 个 WAN,本地运营商每 3 天强行踢下线换一次 IP,所以容易死机

    水平有限,思来想去,终于发现一个可行的办法
    在路由旁边有一个低功耗的小电脑,充当代理,下载机和 NAS 功能,所以想到在上面用一个程序控制一个 USB 继电器以达到路由死机后断电再开的重启功能

    USB 继电器,功能非常简单免驱动的,卖家提供了各种开发包,不过只需要命令行控制开关,把路由器电源线其中一根接在继电器常闭端,默认就是通的状态,路由死机的时候控制继电器切换到常开,让电源线断开 5 秒后,再恢复,然后等 150 秒,脚本程序回到起点,重新检测路由状态



    这次也认真学习了一下脚本,这是脚本程序
    功能简单,ping 不通后就断电 5 秒,恢复后,等 150 秒,重新 ping


    断电的时候写一下时间到 log,能发现什么时候重启路由了


    路由 3 天死一次....
    第 1 条附言  ·  2015-10-22 12:54:49 +08:00
    饿啊!居然又发生了路由未死,wifi 死掉的情况... 果断的改成了无线看门狗,把 USB 继电器和一个 USB 无线网卡,分配到一个 VBOX 虚拟机里,达成无线看门狗功能....
    19 条回复    2015-10-23 10:01:02 +08:00
    qdk0901
        1
    qdk0901  
       2015-10-19 12:09:24 +08:00
    挽回李狗蛋的尊严,我顶。
    狗蛋,请准备 esp8266 的版本, gpio 直接控制继电器
    tux
        2
    tux  
    OP
       2015-10-19 12:10:57 +08:00
    @qdk0901 不要吹比,做出来看看
    loading
        3
    loading  
       2015-10-19 12:17:18 +08:00 via iPhone
    设置每天半晚自动重启一次不就好了?
    MrGba2z
        4
    MrGba2z  
       2015-10-19 12:21:30 +08:00 via iPhone
    路由难道没定时重启功能么。。
    Earthman
        5
    Earthman  
       2015-10-19 12:27:56 +08:00
    啥破路由,下线还会死机?我这边是每周踢下线,但是路由自己就拨上了,完全没感觉。另外在路由上部署了邮件通知, ip 改变就会发邮件,很方便是不是
    Admstor
        6
    Admstor  
       2015-10-19 13:22:57 +08:00
    你买这些设备的钱...换个高级点的路由吧..
    21grams
        7
    21grams  
       2015-10-19 13:42:50 +08:00
    路由为啥会死机,你这是路由太差了吧
    Earthman
        8
    Earthman  
       2015-10-19 13:59:43 +08:00
    35 一个不便宜啊
    yeyeye
        9
    yeyeye  
       2015-10-19 14:01:52 +08:00
    看你上一个帖子 显然是可以设置自动重启的 3 天才死机一次 那设定每天重启一次就好了 看看还会不会死机

    如果你的路由器没有自动重启功能 那说明是路由器自带固件 那么只要内网每天定时发送一个 http 请求就可以实现重启了 如果路由器有动态域名功能(除了十年前的路由猫,再也没见过不支持动态域名的路由器了) 就在外网定时发一个 http 请求就可以了

    用硬件来实现也确实是有点大题小做了。

    不过楼主所做的也是我一直想做的 有一个路由器 常常我喜欢远程的方式重启,但是坑爹的是这个路由器偶尔重启后会根本不启动(只亮一个电源灯,但是拔电再插又从来没有启动不了的情况) 于是我再也不敢随便重启了……因为一旦重启失败,就失去联络了……
    dndx
        10
    dndx  
       2015-10-19 14:02:25 +08:00
    同感路由太烂,不如省着钱买新的..
    zjqzxc
        11
    zjqzxc  
       2015-10-19 15:51:38 +08:00   ❤️ 1
    一看内容我就记得楼主上一条帖子我也回复过。。。

    难道就木有人吐槽楼主的批处理文件么。。。 @echo off 了底下几乎每一天命令前面都加 @干嘛。。

    不过那个 delay.exe 1000 的确有点意思哈~~~为了写个批处理还得用编译一个小程序也是够拼的。。
    一般 bat 文件实现 sleep 的方法是
    ping 192.168.233.233 -n 1 -w 10000 > null
    延迟 10 秒,其中 192.169.233.233 为一个不存在 ip 地址。

    &&然后嘛,目测楼主是通过 delay 然后 goto 的方式实现循环的,虽然方法也可以,但真的没这么做过。干嘛不直接加计划任务呢。

    这一大堆 goto 的,其实计划任务加一个 if 就解决的事儿。
    yeyeye
        12
    yeyeye  
       2015-10-19 21:28:27 +08:00
    @zjqzxc 加 @是为了防止输出命令本身,而 echo off 是防止输出命令执行结果

    你这样延时也是错误用法 XP 开始命令行支持 timeout 命令 直接在后面打一个延迟多少秒就可以了
    zjqzxc
        13
    zjqzxc  
       2015-10-19 21:51:51 +08:00
    @yeyeye timeout 那个用法谢了~

    echo off 似乎并不能关闭输出命令执行的结果。
    yeyeye
        14
    yeyeye  
       2015-10-19 21:59:21 +08:00
    @zjqzxc 好吧我错了 @和 echo off 一个意思
    amet
        15
    amet  
       2015-10-21 19:30:54 +08:00
    放个电脑在旁边。。。。为什么不做个软路由?
    jukka
        16
    jukka  
       2015-10-22 09:23:03 +08:00
    楼主真是会玩儿!
    hqs123
        17
    hqs123  
       2015-10-22 19:57:33 +08:00
    楼主专研能力很强啊
    buli
        18
    buli  
       2015-10-23 08:39:21 +08:00 via Android
    看电源像 hg255d 的😊
    shyrock
        19
    shyrock  
       2015-10-23 10:01:02 +08:00
    lz 真程序员。。。垃圾程序不愿意重构,而是在外面加个看门狗重启。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2784 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 14:20 · PVG 22:20 · LAX 06:20 · JFK 09:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.