我使用WireGuard连接到Mullvads (= vpn服务)vpn服务器。总的来说,我使用5个不同的wireguard vpn配置(vpn服务器*)。
所以要连接到server3,我运行wg-quick up server3
,并断开当前服务器- server3 -wg-quick down server3
有时vpn服务器宕机。我想要一个几乎即时重新连接到另一个5个可用的服务器。我怎么做才能使它自动工作?
crontab:
*/3 * * * * ping -c4 google.com || wg-command-here?
所以每隔三分钟google.com就会被ping通。如果失败,它将运行wg-command-here
。这是什么=D?
所以当ping失败时=>断开当前wireguard服务器=>连接到5个可用节点中的另一个(随机的,但是最好是而不是当前连接的那个,原因很明显)。
有没有人有一个整洁的脚本,可以解决这个问题?我已经用谷歌搜索了2天根本找不到解决办法。肯定有可能,管他呢。我没有编程知识,所以我真的希望这里有一个复制粘贴解决方案。
您需要运行一个脚本,不时检查连接脚本ping服务器当服务器在线时,它连接到有线VPN并检查连接的服务器,如果连接的服务器ping失败3次,它通过ping
检查另一个服务器在运行前修改serverip脚本
#!/bin/bash
server1IP= 84.18.418.64 #change server1 ip or name
server2IP= 84.18.418.687 #change server2 ip or name
server3IP= 845.158.418.64 #change server3 ip or name
server4IP= 44.168.418.64 #change server4 ip or name
server5IP= 64.68.418.64 #change server5 ip or name
while true
do
if /bin/ping -c 1 $server1Ip
then
sudo wg-quick up server1
tries=0
while [[ $tries -lt 3 ]]
do
if /bin/ping -c 1 $server1Ip
then
tries=0
continue
fi
tries=$((tries+1))
done
sudo wg-quick down server1
fi
if /bin/ping -c 1 $server2Ip
then
sudo wg-quick up server2
tries=0
while [[ $tries -lt 3 ]]
do
if /bin/ping -c 1 $server2Ip
then
tries=0
continue
fi
tries=$((tries+1))
done
sudo wg-quick down server2
fi
if /bin/ping -c 1 $server3Ip
then
sudo wg-quick up server3
tries=0
while [[ $tries -lt 3 ]]
do
if /bin/ping -c 1 $server3Ip
then
tries=0
continue
fi
tries=$((tries+1))
done
sudo wg-quick down server3
fi
if /bin/ping -c 1 $server4Ip
then
sudo wg-quick up server4
tries=0
while [[ $tries -lt 3 ]]
do
if /bin/ping -c 1 $server4Ip
then
tries=0
continue
fi
tries=$((tries+1))
done
sudo wg-quick down server4
fi
if /bin/ping -c 1 $server5Ip
then
sudo wg-quick up server5
tries=0
while [[ $tries -lt 3 ]]
do
if /bin/ping -c 1 $server5Ip
then
tries=0
continue
fi
tries=$((tries+1))
done
sudo wg-quick down server5
fi
done
将此脚本保存为wiregard .sh或者下载https://anonfiles.com/p3Y94av1u6/wiregaurd_sh
sudo chmod +x wiregard .sh
sudo sed -i -e 's/r$//' wiregard .sh
sudo nohup "./wiregard .sh",
或
在启动时运行此脚本把这个放到crontab
中@reboot [wiregard脚本路径]