发布时间:2022年11月20日 修改时间:2024年05月14日 已有 63281 人围观
现实生活中大多数网民会租用运营商 PPPoE 线路作为自家互联网出口,但同时也会遇到网络用着用着突然断掉的情况。一般情况下,运营商为节省有限的公网地址资源,会在 server 端启用命令,让 client 端定时重新拨号。如果 client 端响应则会有 10-20 秒的断网,如果 client 没有重新拨号,就将直接断网。这种机制因地区不同所间隔的时间也不相同,有 8 小时,24 小时,96 小时,一周或者一个月不等。我们现在针对这个问题有两种解决方案,第一种,打电话给运营商,让运营商那边进行时间上的更改;第二种,我们这边提供了一个脚本,可将断线时间设置在网络空闲的时候。本文介绍如何编写脚本使得 PPPoE 可以自行断线重播。
(1)拓扑说明
(2)需求 & 方案
(1)查看自己 PPPoE 拨号的虚拟接口
(2)更改时区
(3)查看系统时间
date //保证系统时间和我们本地的时间是一致的
(4)配置脚本
cd /config/scripts //进入 scripts 文件夹
echo '#!/bin/vbash' >> redial //编辑命令进入 redial 脚本中
echo 'run=/opt/vyatta/bin/vyatta-op-cmd-wrapper' >> redial
echo '$run disconnect interface pppoe1' >> redial // pppoe1 断开
echo 'sleep 10' >> redial //断开10秒
echo '$run connect interface pppoe1' >> redial // pppoe1 连接
cat redial //查看脚本 redial 配置
#!/bin/vbash
run=/opt/vyatta/bin/vyatta-op-cmd-wrapper
$run disconnect interface pppoe1
sleep 10
$run connect interface pppoe1
chmod +x redial
./redial //立即执行脚本
Bringing interface pppoe1 down...
Bringing interface pppoe1 up...
pwd //查看路径
/config/scripts
configure //进入配置模式
set system task-scheduler task redial crontab-spec '55 3 * * *' //启用定时任务“分 时 日 月 星期几” ,我们这里定每天的凌晨3点55分执行
set system task-scheduler task redial executable path /config/scripts/redial //执行脚本路径
commit //立即执行
save //保存
(3)测试
上一篇: EdgeMax 组播应用之电子课堂