Unknownunknownshangke

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

Shangke·2022-07-10 17:28·6229 次阅读

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

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

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

1.可能会用到的命令#

重启设备#

Copy
/sbin/reboot

重启WiFi#

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

重启所有网络#

Copy
/etc/init.d/network restart

note:

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

重拨wan#

Copy
/sbin/ifup wan

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

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

interfaces页面#

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

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

2.实际使用#

如果频繁掉线,可以考虑修改这两个配置项#

  1. network -> interface -> WAN (pppoe) -> EDIT -> Advanced Settings -> LCP echo failure threshold 和 LCP echo interval
    网络 -> 接口 -> WAN (pppoe) -> 编辑 -> 高级设置 -> LCP 响应故障阀值 和 LCP 响应间隔
    备忘引用:

楼主你好,我深圳也办了这个套餐,但是使用过程发现如果玩PT一直高速上传,过一段时间就会重新拨号。导致外网IP变化,连接会中断一会。
请问你使用过程中有遇到这个情况么?

深空 发表于 2018-3-8 21:15
是不是你的路由器,续约是默认的啊,你把他调大一些?我确实也会断。貌似一天断一次 ...

谢谢解答。
我换了路由器解决了。
原来的lede 软路由器重连原因也找到了,是由于LEDE 的pppoe拨号参数里面有一个 lcp响应 阈值bug导致的,参数为0 ,实际生效是5。
引用:
lcp响应设置存在bug.. 这个需要你检查PPPOE日志来判断 如果日志出现
No response to 5(可能为其他值) echo-requests
Serial link appears to be disconnected.
就说明是LCP响应设置问题 LEDE的bug在于你在页面设置LCP响应超时次数为0时候 为默认5次超时
所以基本更新后就是默认5s LCP不响应 LEDE认为PPPOE断线,重播,秒断.
国内的ISP商很少提供LCP全程响应的. 所以将LCP检测时间间隔跟次数设置为一个很大很大的值可以解决这个问题

  1. /etc/ppp/option 中的 lcp-echo-failure 和 lcp-echo-interval
    note:部分地区的电信光猫会频繁重启,更换公网IP地址。导致Openwrt不能自动连上网络

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

Copy
0 5 * * * /sbin/ifup wan

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

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

e.g.

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

chk_net_redail.sh :

Copy
#!/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
posted @   Unknown尚可  阅读(6232)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示
目录