定时更新VPN服务密码及源码
环境介绍:
准备两台VPS,一台为OpenVZ(我们假设为VPS1),另外一台专门用于提供PPTPd VPN服务的VPS(Xen,我们假设为VPS2),假设提供PPTP VPN服务的VPS的IP地址为1.1.1.1。
第一步 :在VPS2上安装PPTPd VPN
#wget http://www.diahosting.com/dload/pptpd.sh
#chmod +x pptpd.sh
#./pptpd.sh
第二步 :在VPS2上安装expect,用于生产随机密码
#yum install expect
第三步:在VPS2上安装httpd
#yum install httpd
#service httpd start
第四步:在VPS2上的/root/目录下编写shell脚本,文件名为vpn.sh,用于自动更新密码,以下是脚本源码。
#! /bin/bash pass=`mkpasswd -l 8 -d 8 -c 0 -C 0 -s 0` year=`date "+%Y"` month=`date "+%m"` day=`date "+%d"` hour=`date "+%H"` min=`date "+%M"` sec=`date "+%S"` sed -i "3s/.*/vpn pptpd $pass */" /etc/ppp/chap-secrets /etc/rc.d/init.d/pptpd restart-kill cat /dev/null > /var/www/html/vpninfo.txt echo $year >> /var/www/html/vpninfo.txt echo $month >> /var/www/html/vpninfo.txt echo $day >> /var/www/html/vpninfo.txt echo $hour >> /var/www/html/vpninfo.txt echo $min >> /var/www/html/vpninfo.txt echo $sec >> /var/www/html/vpninfo.txt echo $pass >> /var/www/html/vpninfo.txt
第五步:设置crontab,每30分钟执行一次脚本
#crontab -e
将以下代码加入crontab
0,30 * * * * /root/vpn.sh
至此VPS2上的设置已经完成,然后就是在vps1上部署,很简单,就是几行php代码,主要是设置循环倒计时的代码:
<?php $file="http://72.11.148.188/vpninfo.txt"; $filetext=file($file); $timestamp=mktime($filetext[3],$filetext[4],$filetext[5],$filetext[1],$filetext[2],$filetext[0]); $timestamp=$timestamp+1800; $year=date("Y",$timestamp); $month=date("m",$timestamp); $day=date("d",$timestamp); $hour=date("H",$timestamp); $min=date("i",$timestamp); $sec=date("s",$timestamp); $pass=$filetext[6]; ?> <html> <head> <title>云端互联免费VPN</title> <meta name="description" content="云端互联 免费 VPN" /> <meta name="keywords" content="云端互联 免费 VPN" /> </head> <body> <embed src="http://www.clocklink.com/clocks/9001j-blue.swf?Title=本次密码&Message=<?=$pass?>&Target=2014,1,1,0,0,0&TimeZone=GMT0800" width="600" height="60" wmode="transparent" type="application/x-shockwave-flash"> <embed src="http://www.clocklink.com/clocks/9001j-blue.swf?Title=距下一次更新密码&Message=<?=$pass?>&Target=<?=$year?>,<?=$month?>,<?=$day?>,<?=$hour?>,<?=$min?>,<?=$sec?>&TimeZone=GMT0800" width="600" height="60" wmode="transparent" type="application/x-shockwave-flash"> </body> </html>
定时更新VPN服务密码及源码:等您坐沙发呢!