爱意满满的作品展示区。
tux

路由看门狗,终于搞成了

  •  
  •   tux · Oct 19, 2015 · 4659 views
    This topic created in 4037 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
    qdk0901
    Oct 19, 2015
    1
    挽回李狗蛋的尊严,我顶。
    狗蛋,请准备 esp8266 的版本, gpio 直接控制继电器
    tux
    tux
    OP
    Oct 19, 2015
    2
    @qdk0901 不要吹比,做出来看看
    loading
    loading
    Oct 19, 2015 via iPhone
    3
    设置每天半晚自动重启一次不就好了?
    v2gba
    v2gba
    Oct 19, 2015 via iPhone
    4
    路由难道没定时重启功能么。。
    Earthman
    Earthman
    Oct 19, 2015
    5
    啥破路由,下线还会死机?我这边是每周踢下线,但是路由自己就拨上了,完全没感觉。另外在路由上部署了邮件通知, ip 改变就会发邮件,很方便是不是
    Voren
    Voren
    Oct 19, 2015
    6
    你买这些设备的钱...换个高级点的路由吧..
    21grams
    21grams
    Oct 19, 2015
    7
    路由为啥会死机,你这是路由太差了吧
    Earthman
    Earthman
    Oct 19, 2015
    8
    35 一个不便宜啊
    yeyeye
    yeyeye
    Oct 19, 2015
    9
    看你上一个帖子 显然是可以设置自动重启的 3 天才死机一次 那设定每天重启一次就好了 看看还会不会死机

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

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

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

    难道就木有人吐槽楼主的批处理文件么。。。 @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
    yeyeye
    Oct 19, 2015
    12
    @zjqzxc 加 @是为了防止输出命令本身,而 echo off 是防止输出命令执行结果

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

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