您当前的位置:首页 > 学海无涯 > 其他网站首页其他
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模型与攻击类型导图
下一篇:Centos修改北京时间
相关文章
-
无相关信息