wireguard节点ping检测不通,重启服务脚本。
2023-03-26 16:38 作者:超级混蛋的混蛋大弹坑 | 我要投稿
背景:
我有两个局域网,一个有动态公网,设置ddns。另一个地方只有私网地址。两个局域网内各有一台centos部署了wireguard。如果有公网的节点路由器重新拨号会导致无公网节点掉线。
解决思路:
通过在无公网节点上增加ping检测脚本和crontab命令定时启动脚本来实现子节点自动重连。
步骤:
1、编写脚本
touch pingwg.sh
nano pingwg.sh
把下面几行粘贴到nano文本里头,ip地址改成自己要检测的。
#!/bin/sh
if ! ping -c 3 192.168.0.5 > /dev/null 2>&1 ;then
echo "The network is down! Now try restarting wg0!\n" >> ./ddns-wg0.log
systemctl restart wg-quick@wg0
fi
2、测试脚本
sh pingwg.sh 不报错,wireguard服务正常重启。
3、创建crontab定时任务
1)修改pingwg.sh的权限(否则crontab运行提示权限不足,我是直接777了)
chmod 777 pingwg.sh
2)增加定时任务
nano /etc/crontab
在文本最后加上一句
20,40 * * * * root /root/pingwg.sh
意思为:分 时 天 月 周 用户名 脚本路径
表示每小时的20和40分钟执行该脚本。 脚本位置必须是绝对路径。
3)启动crontab进程
crontab /etc/crontab
附录:
脚本参考 www.dianjilingqu.com/145511.html 进行修改。