wireguard節(jié)點(diǎn)ping檢測(cè)不通,重啟服務(wù)腳本。
背景:
我有兩個(gè)局域網(wǎng),一個(gè)有動(dòng)態(tài)公網(wǎng),設(shè)置ddns。另一個(gè)地方只有私網(wǎng)地址。兩個(gè)局域網(wǎng)內(nèi)各有一臺(tái)centos部署了wireguard。如果有公網(wǎng)的節(jié)點(diǎn)路由器重新?lián)芴?hào)會(huì)導(dǎo)致無(wú)公網(wǎng)節(jié)點(diǎn)掉線。
解決思路:
通過(guò)在無(wú)公網(wǎng)節(jié)點(diǎn)上增加ping檢測(cè)腳本和crontab命令定時(shí)啟動(dòng)腳本來(lái)實(shí)現(xiàn)子節(jié)點(diǎn)自動(dòng)重連。
步驟:
1、編寫(xiě)腳本
touch pingwg.sh
nano pingwg.sh
把下面幾行粘貼到nano文本里頭,ip地址改成自己要檢測(cè)的。
#!/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、測(cè)試腳本
sh pingwg.sh 不報(bào)錯(cuò),wireguard服務(wù)正常重啟。
3、創(chuàng)建crontab定時(shí)任務(wù)
1)修改pingwg.sh的權(quán)限(否則crontab運(yùn)行提示權(quán)限不足,我是直接777了)
chmod?777 pingwg.sh
2)增加定時(shí)任務(wù)
nano /etc/crontab
在文本最后加上一句
20,40?* * * * root /root/pingwg.sh
意思為:分 時(shí) 天 月 周 用戶名 腳本路徑
表示每小時(shí)的20和40分鐘執(zhí)行該腳本。 腳本位置必須是絕對(duì)路徑。
3)啟動(dòng)crontab進(jìn)程
crontab /etc/crontab
附錄:
腳本參考?www.dianjilingqu.com/145511.html 進(jìn)行修改。