找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 3611|回复: 4

有没有可用的自动切换DHCP网关的脚本

[复制链接]
本帖最后由 silent117 于 2019-10-17 17:26 编辑

RT!

本人家中使用AC68U+梅林做主路由(192.168.2.1)
黑群晖+VMM+LEDE做旁路由(192.168.2.2)
为了方便使用一些不可描述的功能,主路由的DHCP的网关指向的是旁路由,旁路由的网关指向主路由
由于家中可能会停电,旁路由无法在来电后自动启动,所以就算主路由启动,家里的所有网络也无法正常使用。

所以,有没有大佬可以做一个脚本:判断旁路由是否能够使用,如果正常,则主路由内网DHCP网关修改为192.168.2.2,否则修改为192.168.2.1,以确保家中网络正常。

PS:看过类似的文章,里面修改的是pppoe的,但是我需要修改的是DHCP,再次恳请大佬们出手帮忙~,谢谢!
参考文章网址:https://blog.csdn.net/liushi558/article/details/46425761

我的恩山、我的无线 The best wifi forum is right here.
没用过梅林,不知道配置文件类型,op话,用ping -w 1 -c 1 旁路由IP &> /dev/null && echo 1 || echo 0   来判断,返回1在线0不在线,if判断,uci命令改配置,重启网络防火墙 检测到在线再改回原来的样子,保存丢到热拔插脚本目录就好了!这样旁路不在线就会将自身作为网关,在线就会自动跳过去!

点评

感谢回复,这类脚本语言平时也就看的多一些,真正写了就开始迷茫~~  详情 回复 发表于 2019-10-17 21:34
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
401626436 发表于 2019-10-17 19:51
没用过梅林,不知道配置文件类型,op话,用ping -w 1 -c 1 旁路由IP &> /dev/null && echo 1 || echo 0    ...

感谢回复,这类脚本语言平时也就看的多一些,真正写了就开始迷茫~~
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

占位学习
~~~
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报


#!/bin/sh
bypass=192.168.50.99
default_ip=192.168.50.1

network()
{
        #这里比较取巧的是通过判断路由器的页面能否打开判断旁路由在不在线
    local timeout=2
        #call bypass server
        local ret_code=`curl -I -s -m ${timeout} ${bypass} -w %{http_code} | tail -n1`
        if [ "x$ret_code" = "x000" ]; then
                return 1
        else
                return 0
        fi
}

changeGateway()
{
        #confirm whether default now
        local resp=`grep $1 /jffs/configs/dnsmasq.d/openwrt.conf|wc -l`
        if [ $resp -gt 0 ];then
                /usr/bin/logger "[bypass detect] gateway don't need to change"
                return 0
        else
                #need change gateway
                /usr/bin/logger "[bypass detect] change gateway from $2 to $1"
                sed -i "s/$2/$1/g" /jffs/configs/dnsmasq.d/openwrt.conf
                service restart_dnsmasq
                /usr/bin/logger "[bypass detect] change gateway to $1 success"
                return 0
        fi
}

network
if [ $? -eq 0 ];then
        changeGateway $bypass $default_ip
else
        changeGateway $default_ip $bypass
fi
————————————————
版权声明:本文为CSDN博主「濑尿牛丸」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_Gbj/article/details/114004608
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-27 01:56

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表