设置openwrt 断网 自动重启网络(重启WAN接口)

原创 淹不死的狗  2025-03-03 01:08:19  阅读 21 次 评论 0 条
摘要:

在openwrt中设置自动重启wan接口路由器刷了openwrt,由于上级路由器断网或者重启连接网络后,OpenWrt路由器不会自动重连网络,如果你想设置WAN接口在出现故障时自动重启,你可以通过几种方法来实现这一功能。路由器偶尔会自动断网,但是进去路由器发现网络正常,网上查找资料发现应该是运营商更新了,但是路由器没有更新,网上搜了个脚本能解决这个问题,做个备忘。下面是一些常见的方法:方法1:使用ifupdown脚本    创建自定义脚本,创建一个自定义的ifupd

在openwrt中设置自动重启wan接口
路由器刷了openwrt,由于上级路由器断网或者重启连接网络后,OpenWrt路由器不会自动重连网络,如果你想设置WAN接口在出现故障时自动重启,你可以通过几种方法来实现这一功能。
路由器偶尔会自动断网,但是进去路由器发现网络正常,网上查找资料发现应该是运营商更新了,但是路由器没有更新,网上搜了个脚本能解决这个问题,做个备忘。
下面是一些常见的方法:
方法1:使用ifupdown脚本
    创建自定义脚本,创建一个自定义的ifupdown脚本来监控WAN接口的状态,并在检测到问题时重启接口。

#!/bin/sh
tries=0
logger "my network watchdog start"
while [[ $tries -lt 5 ]]
do
        if /bin/ping -c 1 119.29.29.29 >/dev/null
        then
            logger "network pass, exit."
            exit 0
        fi
        tries=$((tries+1))
        sleep 10
done
logger "network error, restart network"

保存到 root/xxx.sh xxx自己起个名字
chmod +x xxx.sh 给脚本赋予执行权限。
设置脚本定时运行:在openwrt计划任务中新建一个 然后选择自定义 
*/6 * * * * sh /root/scripts/xxx.sh   
我设置的每6分钟检查一次。


在openwrt中设置自动重启wan接口:你可以创建一个自定义的ifupdown脚本来监控WAN接口的状态,并在检测到问题时重启接口。

#!/bin/sh
INTERFACE="wan"  
# 你的WAN接口名称
LOGFILE="/tmp/wan_check.log"
 
# 检查WAN接口状态
if ! ping -c 3 119.29.29.29 > /dev/null; then
    echo "$(date) WAN interface down, restarting..." >> $LOGFILE
    ifdown $INTERFACE && ifup $INTERFACE
fi


保存到 root/xxx.sh xxx自己起个名字,
chmod +x xxx.sh 给脚本赋予执行权限。
使用crontab来定时运行这个脚本。例如,每5分钟检查一次:
在openwrt计划任务中新建一个 然后选择自定义 */6 * * * * sh /root/scripts/xxx.sh 我设置的每6分钟检查一次。

方法2:使用watch命令和ifupdown

安装watchcat软件包:系统→软件包→watchcat并安装,然后配置文件 /etc/config/watchcat配置

图片.png 设置openwrt 断网 自动重启网络(重启WAN接口) 操作系统

重新启动网络接口或在ping主机失败时重新启动,或设置定期重新启动。配置文件 /etc/config/watchcat配置

你也可以使用watch命令结合ifupdown来监控接口状态。

watch -n 30 "ping -c 1 119.29.29.29 && echo 'Online' || (ifdown wan && ifup wan && echo 'Restarted WAN')"

这个命令会每30秒检查一次WAN接口的状态,并在检测到问题时重启接口。
方法3:使用fail2ban或watchdog服务
虽然fail2ban主要用于监控和封禁失败的登录尝试,但它也可以用来监控网络连接问题。你可以配置它来监控特定IP或接口的连接问题,并在检测到问题时重启接口。
    安装fail2ban(如果尚未安装):

opkg update
opkg install fail2ban

配置fail2ban:编辑/etc/fail2ban/jail.local来添加或修改WAN接口的监控规则。例如:

    [mywan]
    enabled = true
    port = http,https,ssh,ftp  # 根据需要修改端口
    filter = mywanfilter       # 自定义过滤器名称,需要创建此过滤器配置文件在 /etc/fail2ban/filter.d/ 下
    logpath = /var/log/mywan.log  # WAN日志路径,需要确保有正确的日志记录方式或工具来记录WAN接口问题到此文件
    bantime = -1              # 永久封禁,实际上重启接口后会自动解封,但这里可以设置为其他值以测试封禁效果
    action = iptables-multiport[name=WAN, port="http,https,ssh,ftp", protocol=tcp]
            iptables-allports[name=WANRESTART, actiontype=restart]  # 重启WAN接口的动作定义,需要自定义此部分以实现重启功能

    创建自定义过滤器:在/etc/fail2ban/filter.d/目录下创建相应的过滤器文件,例如mywanfilter.conf和mywanfilter.local。
方法4:使用网络监控工具和自动重启脚本结合使用(如Nagios)
如果你有更高级的需求,可以使用像Nagios这样的网络监控工具来监控WAN接口的状态,并在检测到问题时触发自定义脚本进行重启。这通常涉及到更复杂的配置和额外的软件安装。
结论
选择哪种方法取决于你的具体需求和OpenWrt的配置。对于简单的需求,编写一个简单的脚本并使用crontab可能是最直接的方法。如果你需要更复杂的监控和响应机制,考虑使用fail2ban或集成网络监控工具。每种方法都有其优缺点,根据你的实际情况选择最合适的方案。
提示:AI自动生成,仅供参考

本文地址:https://tugouli.exiu.org/3690.html
版权声明:本文为原创文章,版权归 淹不死的狗 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?