ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Openwrt_命令行计划测试网络以及重启

2022-07-10 17:35:38  阅读:529  来源: 互联网

标签:wan sbin 重启 redail ifup sh 命令行 wget Openwrt


用以解决由于公网IP改变,导致Openwrt拨号无法上网的问题。以下仅供参考

首先,确认WAN口名称为"WAN"

1.可能会用到的命令

重启设备

/sbin/reboot

重启WiFi

/sbin/wifi down && /sbin/wifi/up

重启所有网络

/etc/init.d/network restart

note:

  1. 注意,以上命令可能会影响到网络连接。所以如果是ssh连接,会出现断开卡死等情况,严重情况下需要等待一段时间后再重新主动连接
  2. network restart 先执行 ifdown -a 停用所有网络,再全部重启网络

重拨wan

/sbin/ifup wan

这个命令不会影响ssh连接,立刻就能返回结果。
如果执行正常的话,稍等几秒后 WAN口 IP、及其对应的 WAN6 口IP都会改变
note:

  1. 这个 ifup 命令,最终是通过以下代码执行的。
ubus call network.interface down '{"interface":"wan"}' + ubus call network.interface up '{"interface":"wan"}'
  1. 这个命令相当于 ifdown wan && ifup wan,显式执行这个也是可以的
  2. 实际使用过程中可能会出现ipv4不会改变,仅ipv6改变的问题。如果有更换IP的需求,最好执行
ifdown wan;sleep 2;ifup wan

interfaces页面

web-interfaces图形化界面中一些button映射的方法

  1. WAN-Restart
/sbin/ifup wan
  1. WAN-Stop
/sbin/ifdown wan

2.实际使用

在 crontab 里计划任务执行,每天五点重拨

0 5 * * * /sbin/ifup wan

在 crontab 里计划任务执行 sh脚本 访问外网,需要 opkg install wget ca-bundle 支持

note:
1.用 wget ping 指定网站,判断返回值就可以知道访问是否成功。
2.wget 需要自行设置timeout参数 ,原参数太长;重试次数需要设置大于2次,留足冗余

e.g.

*/10 * * * * /bin/sh
/root/chk_net_redail.sh

chk_net_redail.sh :

#!/bin/sh
# filename: /root/chk_net_redail.sh
# 4=network error/refused/timeout/dns err/
# need "opkg install wget ca-bundle"

count=0
URLs='http://baidu.com  http://163.com  http://www.qq.com  http://sogou.com'
for host in $URLs ; do
    #echo $host
    # wget -t2 这个参数要>=2, 防止第一次访问dns解析超时,而导致失败
    wget -q -T3 -t3 --method=HEAD --max-redirect=0 "$host"
    if [ 4 -eq $? ]; then
        echo $(date +%F_%T%z) $host 'error.' >> /root/log.redail
        count=$((count+1))
    else
        break
    fi
done
URL_cnt=$(echo $URLs|wc -w)
if [ $count -ge $URL_cnt ]; then
    echo $(date +%F_%T%z) redail >> /root/log.redail
    ifdown wan; sleep 1; ifup wan
fi

标签:wan,sbin,重启,redail,ifup,sh,命令行,wget,Openwrt
来源: https://www.cnblogs.com/unknownshangke/p/16463541.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有