V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
tux

路由看门狗,终于搞成了

  •  
  •   tux · Oct 19, 2015 · 3995 views
    This topic created in 3855 days ago, the information mentioned may be changed or developed.
    这是上次发的想法 https://www.v2ex.com/t/211394
    再补充一点,路由上开了科学上网,还有 2 个 WAN,本地运营商每 3 天强行踢下线换一次 IP,所以容易死机

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

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



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


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


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

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

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

    不过楼主所做的也是我一直想做的 有一个路由器 常常我喜欢远程的方式重启,但是坑爹的是这个路由器偶尔重启后会根本不启动(只亮一个电源灯,但是拔电再插又从来没有启动不了的情况) 于是我再也不敢随便重启了……因为一旦重启失败,就失去联络了……
    dndx
        10
    dndx  
       Oct 19, 2015
    同感路由太烂,不如省着钱买新的..
    zjqzxc
        11
    zjqzxc  
       Oct 19, 2015   ❤️ 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  
       Oct 19, 2015
    @zjqzxc 加 @是为了防止输出命令本身,而 echo off 是防止输出命令执行结果

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

    echo off 似乎并不能关闭输出命令执行的结果。
    yeyeye
        14
    yeyeye  
       Oct 19, 2015
    @zjqzxc 好吧我错了 @和 echo off 一个意思
    amet
        15
    amet  
       Oct 21, 2015
    放个电脑在旁边。。。。为什么不做个软路由?
    jukka
        16
    jukka  
       Oct 22, 2015
    楼主真是会玩儿!
    hqs123
        17
    hqs123  
       Oct 22, 2015
    楼主专研能力很强啊
    buli
        18
    buli  
       Oct 23, 2015 via Android
    看电源像 hg255d 的😊
    shyrock
        19
    shyrock  
       Oct 23, 2015
    lz 真程序员。。。垃圾程序不愿意重构,而是在外面加个看门狗重启。。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2991 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 13:17 · PVG 21:17 · LAX 06:17 · JFK 09:17
    ♥ Do have faith in what you're doing.