您当前的位置:首页 > 学海无涯 > 其他网站首页其他
VPN自动切换服务器拨号脚本
发布时间:2021-01-10作者:♂逸風★淩軒
#!/bin/bash
limmit="120"
Servers=(a.com b.com)
ChangeRoute()
{
#需求注意阿里云出口IP是否变更,现指定为 120.78.204.192
#echo "`date "+%Y-%m-%d %H:%M:%S"`成功拨号" >> /root/logs/l2tp.log
route add -host p.3.cn gw ${L2tpIP}
route add -host search.jd.com gw ${L2tpIP}
route add -host gd.chinavnet.com gw ${L2tpIP}
#route add -host 119.29.29.29 gw ${L2tpIP}
}
LogCheck()
{
while true
do
Error=$(tail -26 /usr/local/tomcat-proxy/logs/catalina.`date '+%Y-%m-%d'`.out |grep "socket请求超时,重新发送HTTP请求" |wc -l)
if test $Error -eq 0;then
echo "VPN服务IP尚未封禁,继续使用ing...."
sleep 30
else
date
echo "VPN服务IP已被封禁,跳出检测日志,即将更换IP...."
break
fi
done
}
TimeLimit()
{
if [ "$RemoIP" != "$OldIP" ];then
echo "VPN服务已链接且IP为新IP修改网关ing...."
ChangeRoute
IPServer=($(sed -n '18p' /etc/xl2tpd/xl2tpd.conf |awk '{print $3}'))
echo "`date '+%Y-%m-%d %H:%M:%S'` ${RemoIP} ${IPServer}" >> /root/logs/ip.log
echo "新IP待机使用20分钟ing...."
sleep 12000
else
start=$(/usr/bin/tail -1 /root/logs/ip.log |awk '{print $1 " " $2}')
first=$(date -d "$start" +%s)
end=$(date '+%Y-%m-%d %H:%M:%S')
last=$(date -d "$end" +%s)
time=$(( ($last - $first)/60 ))
echo "时间差$time分钟"
if [ "$time" -gt "$limmit" ];then
echo "同一IP超出${limmit}分钟未更换需重连代理" >> /root/logs/l2tp.log
echo 'd ipsec' > /var/run/xl2tpd/l2tp-control
else
stime=$((1200-($last - $first)))
date
echo "同一IP未超出20分钟可待机继续使用$stime秒"
sleep $stime
echo 'd ipsec' > /var/run/xl2tpd/l2tp-control
fi
fi
}
LogLimit()
{
echo "VPN服务已链接且IP为新IP修改网关ing...."
ChangeRoute
IPServer=($(sed -n '18p' /etc/xl2tpd/xl2tpd.conf |awk '{print $3}'))
echo "`date '+%Y-%m-%d %H:%M:%S'` ${RemoIP} ${IPServer}" >> /root/logs/ip.log
LogCheck
}
while true
do
date
echo "初始化重新拨号ing...."
if test $(ps -ef |grep xl2tpd |grep D |wc -l) -eq 0;then
echo " Xl2tpd服务未启动,重启ing..."
service xl2tpd restart
else
echo 'c ipsec' > /var/run/xl2tpd/l2tp-control
fi
sleep 30
L2tpIP=($(/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v 172.16.64.10|grep -v inet6|awk '{print $2}'))
RemoIP=($(/usr/bin/curl -s -4 ip.52aiops.cn))
OldIP=$(/usr/bin/tail -1 /root/logs/ip.log |awk '{print $3}')
if [ "${L2tpIP}" == "" ]; then
date
echo "VPN服务未链接成功更换服务器重新拨号ing...."
tail -50 /var/log/messages > /root/logs/checkdata.log
echo "`date "+%Y-%m-%d %H:%M:%S"`异常拨号" >> /root/logs/l2tp.log
IPS=${Servers[$(( $RANDOM % 32 ))]}
cat > /etc/xl2tpd/xl2tpd.conf<<EOF
[global]
ipsec saref = yes
debug avp = no
debug network = no
debug packet = no
debug state = no
debug tunnel = no
[lns default]
ip range = 10.1.7.2-10.1.7.254
local ip = 10.1.7.1
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
[lac ipsec]
lns = $IPS
pppoptfile = /etc/ppp/ipsec.l2tpd
ppp debug = yes
EOF
service xl2tpd restart
echo "更换域名拨号服务器为$IPS"
echo "`date '+%Y-%m-%d %H:%M:%S'` 更换域名拨号服务器为$IPS" >> /root/logs/server.log
echo "VPN服务未链接重新拨号后发送告警ing...."
echo "------------------------------------------" >> /root/logs/checkdata.log
echo "更换域名拨号服务器为$IPS" >> /root/logs/checkdata.log
echo "------------------------------------------" >> /root/logs/checkdata.log
tail -50 /var/log/messages >> /root/logs/checkdata.log
mailx -v -s "爬虫代理拨号异常" xxxx@139.com < /root/logs/checkdata.log
else
#TimeLimit
LogLimit
fi
done关键字词:

上一篇:OSI模型与攻击类型导图
下一篇:常用CentosOS修改北京时间
相关文章
-
无相关信息