当前位置

用CentOS 6的VPS搭建VPN翻墙

James Qi 在 2014年7月13日 - 23:12 提交
内容摘要:这两个月Google不能访问后,一直在用以前“购买的VPS通过SSH+FireFox的方式翻墙”,这需要在Windows电脑上进行一些设置,用到MyEntunnel这个小软件。......

  这两个月Google不能访问后,一直在用以前“购买的VPS通过SSH+FireFox的方式翻墙”,这需要在Windows电脑上进行一些设置,用到MyEntunnel这个小软件。

  上周同事帮忙安装了一台Ubuntu桌面的台式机,我在上面也用类似的办法可以访问Google等国外网站。

  但手机、平板电脑上还不方便这样操作,不好装软件,不过所有的智能手机、平板电脑及笔记本、台式机上都有VPN的功能,这其实是更标准的翻墙办法,只是以前没有找到合适的VPN服务器,自己搭建也没有成功。

  这个周末在网上找了一些资料,经过一番摆弄,总算是在购买便宜的128M内存VPS上安装好了VPN服务,具体设置办法请参考:《Openvz VPS一键PPTP包安装及添加用户教程(CentOS 5 32位/6 32及64位)》,下载运行博主编辑的openvps_vpn_centos-5-6.sh就可以实现一键安装!

  脚本内容如下,可能有变动:

#!/bin/bash

function installVPN5(){

        yum -y install make libpcap iptables gcc-c++ logrotate tar cpio perl pam tcp_wrappers
        rpm -ivh dkms-2.0.17.5-1.noarch.rpm
        rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
        rpm -qa kernel_ppp_mppe
        rpm -Uvh ppp-2.4.4-9.0.rhel5.i386.rpm
        rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm
}


function installVPN6(){

        yum -y install make libpcap iptables gcc-c++ logrotate tar cpio perl pam tcp_wrappers
        rpm -ivh dkms-2.0.17.5-1.noarch.rpm
        rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
        rpm -qa kernel_ppp_mppe
        rpm -Uvh ppp-2.4.5-17.0.rhel6.$arch.rpm
        rpm -ivh pptpd-1.3.4-2.el6.$arch.rpm
}

function setting(){
        mknod /dev/ppp c 108 0
        echo 1 > /proc/sys/net/ipv4/ip_forward
        echo "mknod /dev/ppp c 108 0" >> /etc/rc.local
        echo "echo 1 > /proc/sys/net/ipv4/ip_forward" >> /etc/rc.local
        echo "localip 172.16.36.1" >> /etc/pptpd.conf
        echo "remoteip 172.16.36.2-254" >> /etc/pptpd.conf
        echo "ms-dns 8.8.8.8" >> /etc/ppp/options.pptpd
        echo "ms-dns 8.8.4.4" >> /etc/ppp/options.pptpd

        pass=`openssl rand 6 -base64`
        if [ "$1" != "" ]
        then pass=$1
        fi

        echo "vpn pptpd ${pass} *" >> /etc/ppp/chap-secrets

        iptables -t nat -A POSTROUTING -s 172.16.36.0/24 -j SNAT --to-source `ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk 'NR==1 { print $1}'`
        iptables -A FORWARD -p tcp --syn -s 172.16.36.0/24 -j TCPMSS --set-mss 1356
        service iptables save

        chkconfig iptables on
        chkconfig pptpd on

        service iptables start
        service pptpd start

        echo "===========================LaoZuo.ORG====================================="
        echo "VPN service is installed, your VPN username is vpn,VPN password is ${pass}"
        echo "===========================LaoZuo.ORG====================================="

}

function centos5(){
        echo "begin to install VPN services";
        #check wether vps suppot ppp and tun

        yum remove -y pptpd ppp
        iptables --flush POSTROUTING --table nat
        iptables --flush FORWARD
        rm -rf /etc/pptpd.conf
        rm -rf /etc/ppp

        arch=`uname -m`

        wget http://www.laozuo.org/download/scripts/dkms-2.0.17.5-1.noarch.rpm
        wget http://www.laozuo.org/download/scripts/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
        wget http://www.laozuo.org/download/scripts/pptpd-1.3.4-1.rhel5.1.i386.rpm
        wget http://www.laozuo.org/download/scripts/ppp-2.4.4-9.0.rhel5.i386.rpm

        installVPN5
        setting

}

function centos6(){
        echo "begin to install VPN services";
        #check wether vps suppot ppp and tun

        yum remove -y pptpd ppp
        iptables --flush POSTROUTING --table nat
        iptables --flush FORWARD
        rm -rf /etc/pptpd.conf
        rm -rf /etc/ppp

        arch=`uname -m`

        wget http://www.laozuo.org/download/scripts/dkms-2.0.17.5-1.noarch.rpm
        wget http://www.laozuo.org/download/scripts/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
        wget http://www.laozuo.org/download/scripts/pptpd-1.3.4-2.el6.$arch.rpm
        wget http://www.laozuo.org/download/scripts/ppp-2.4.5-17.0.rhel6.$arch.rpm

        installVPN6
        setting
}



function repaireVPN(){
        echo "begin to repaire VPN";
        mknod /dev/ppp c 108 0
        service iptables restart
        service pptpd start
}

function addVPNuser(){
        echo "input user name:"
        read username
        echo "input password:"
        read userpassword
        echo "${username} pptpd ${userpassword} *" >> /etc/ppp/chap-secrets
        service iptables restart
        service pptpd start
}

echo "please select your operation system"
echo "which do you want to?input the number."
echo "1. my system is centos5 32bit(only support 32bit)"
echo "2. my system is centos6 32bit or 64bit(they are support)"
echo "3. repaire VPN service"
echo "4. add VPN user"
read num

case "$num" in
[1] ) (centos5);;
[2] ) (centos6);;
[3] ) (repaireVPN);;
[4] ) (addVPNuser);;
*) echo "nothing,exit";;
esac

  作者老左不仅编辑整理了脚本,还在自己的服务器上放置了几个需要下载的文件,对我这样不太懂Linux下设置的人来说非常方便,致敬!还有更多其它版本环境的设置办法和脚本都可以去http://www.laozuo.org 查找。

  这样设置启用VPN服务器后,就只对自己或者身边少数人提供服务,应该是不会有麻烦的,基本上就可以完全解决自己上国外网站的问题。在Windows, Linux, MAC机器以及智能手机、平板电脑上都已经顺利设置了VPN客户端,在需要访问国外网站时打开VPN,在只需要访问国内网站的时候关闭VPN以便速度更快。

 

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。
验证码
本问题用于测试您是否为人类访问者,避免自动垃圾发贴。
图形验证
键入显示在图片中的字符