放出本站提供VPN服务功能的源码

2011年4月23日 | 分类: 翻墙相关 | 标签: ,

原文http://www.31sky.net/2011/03/30/272.html

很多网友都很需要本博客提供VPN服务功能的源码,本博客的这项服务的理念也是来自w0w.me,现在就将具体的架设过程记录下来,同大家一起分析,其实很简单,如果您是高手,你就不需要看了。

环境介绍:

本人有两台VPS,一台就是本博客所在的VPS(OpenVZ,我们假设为VPS1),另外一台专门用了提供PPTPd VPN服务的VPS(Xen,我们假设为VPS2),假设提供PPTP VPN服务的VPS的IP地址为123.123.123.123。

第一步 :在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://123.123.123.123/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);

?>

<html>

<head>

<meta http-equiv=”content-type” content=”text/html; charset=utf-8″ />

<title>Free VPN</title>

<meta name=”description” content=”Free VPN” />

<meta name=”keywords” content=”Free VPN” />

</head>

<body>

<embed src=”http://www.clocklink.com/clocks/9001e-blue.swf?TimeZone=GMT0800&Target=<?=$year?>,<?=$month?>,<?=$day?>,<?=$hour?>,<?=$min?>,<?=$sec?>&Title=%E8%B7%9D%E4%B8%8B%E4%B8%80%E6%AC%A1%E6%9B%B4%E6%96%B0%E5%AF%86%E7%A0%81&Message=%E5%AF%86%E7%A0%81%E5%B7%B2%E6%9B%B4%E6%96%B0%EF%BC%8C%E8%AF%B7%E5%88%B7%E6%96%B0%EF%BC%81&”  width=”320″ height=”20″ wmode=”transparent” type=”application/x-shockwave-flash”>

</body>

</html>

目前还没有任何评论.