一、首先租一个服务器
- 1、租一个香港的服务器,这里我选的按量付费,如果不使用了释放就可以了,按小时收费的,不过要求你账户上要多于
100
块钱。 - 2、操作系统选择的64位
CentOS6.5
,CentOS7
以上下面的命令会有所不同。 - 3、创建成功后管理控制台会有公网和私网两个
ip
地址
二、配置VPN
1、安装
ppp
和pptpd
:1yum install ppp pptpd2、配置
DNS
/etc/ppp/options.pptpd
文件中的ms-dns
配置为:12ms-dns 8.8.8.8ms-dns 8.8.4.43、配置
IP
/etc/pptpd.conf
文件中最后加入:12localip 192.168.0.1remoteip 192.168.0.2-2544、配置
VPN
用户名和密码/etc/ppp/chap-secrets
文件中加入:1userName pptpd password *
就是userName
位置写上你的用户名,password
位置写上你的密码
- 5、配置IP转发
/etc/sysctl.conf
文件中net.ipv4.ip_forward = 0
改为1net.ipv4.ip_forward = 1
然后执行:sysctl -p
使其生效
三、配置防火墙
1、加入防火墙规则
123iptables -A INPUT -p TCP -i eth1 --dport 1723 --sport 1024:65534 -j ACCEPTiptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j MASQUERADEiptables -I FORWARD -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1356- 注意这里指定的网卡是
eth1
,其对应外网的网卡,否则能够连上VPN
,但是是访问不了外网的。 VPN
默认的端口是1723
- 注意这里指定的网卡是
2、保存防火墙配置,启动
pptpd
,让其开机自启动1234service iptables saveservice iptables restartservice pptpd startchkconfig pptpd on
四、测试
1、window
或手机等连接
对应外网
IP
,设置的用户名和密码速度是可以的,
我也测试了一下国外的服务器,速度非常慢,还不如免费的
VPN
软件,
五、shell
脚本
1、我写了一个简单的
shell
脚本放在了github
上,github
地址:https://github.com/lawlite19/Script2、运行步骤如下:
- 下载脚本:
wget https://raw.githubusercontent.com/lawlite19/Script/master/shell/vpn_setup.sh
- 添加执行权限:
chmod +x vpn_setup.sh
- 执行即可:
./vpn_setup.sh
3、完整代码:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106#!/bin/bash# Author: Wang Yongzhi(bob)# Date: 2016.11.16echo -e "-----------------------------------------------"echo -e "| Setup VPN... |"echo -e "-----------------------------------------------\n"# Step 1:install ppp and pptpdyum install -y pppyum install -y pptpdif [ $? -eq 0 ]thenecho -e "install ppp and pptpd Success!\n"elseecho -e "Sorry! install ppp and pptpd Failed!\n"exit 0fi# Step 2:configure pptpd DNSsed -i -e '/#ms-dns 10.0.0.1/a\ms-dns 8.8.8.8' /etc/ppp/options.pptpdsed -i -e '/#ms-dns 10.0.0.2/a\ms-dns 8.8.4.4' /etc/ppp/options.pptpdif [ $? -eq 0 ]thenecho -e "Configure DNS Success!\n"elseecho -e "Configure DNS Failed!\n"exit 0fi# Step 3:configure pptpd IPecho localip 192.168.0.1 >> /etc/pptpd.confecho remoteip 192.168.0.2-254 >> /etc/pptpd.confif [ $? -eq 0 ]thenecho -e "Configure pptpd IP Success!\n"elseecho -e "Configure pptpd IP Failed!\n"exit 0fi# Step 4: configure VPN userName and passwordwhile truedoread -p "Please input userName:" userNameread -p "Please input passwd: " Passwdecho $userName pptpd $Passwd \* >> /etc/ppp/chap-secretsread -p "continue?y/N: " flagif [ $flag = "n" -o $flag = "N" ]thenbreakfidone# Step 5: configure forwardingsed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.confif [ $? -eq 0 ]thenecho -e "Configure forwarding Success!\n"elseecho -e "Configure forwarding Failed\n"exit 0fisysctl -p# Step 6: configure iptables#EXTIF=$(ifconfig | head -n 1 | grep -v lo | cut -d ' ' -f 1)iptables -A INPUT -p TCP -i eth1 --dport 1723 --sport 1024:65534 -j ACCEPTiptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j MASQUERADEiptables -I FORWARD -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1356# Step 7: configure when start server to start pptpd and iptablesservice iptables saveservice iptables restartservice pptpd startchkconfig pptpd onecho -e "Complete! Now you can connect the VPN throuth your computer or phone!\n"echo " ***** *****"echo " ********* *********"echo " ************* *************"echo " *****************************"echo " *****************************"echo " *****************************"echo " ***************************"echo " ***********************"echo " *******************"echo " ***************"echo " ***********"echo " *******"echo " ***"echo " *"
- 下载脚本:
六、总结
- 最初是在租了一个国外的服务器测试的,没有问题,但是后来租用香港的服务器就出现的了错误,同样的系统、同样的配置,后来查看内网绑定的是网卡eth0,外网绑定的是网卡
eth1
,而我防火墙里设置的是内网的网卡eth0
。而国外的那个服务器只要一个网卡,所以没有问题。另外练练shell
脚本。
- 本文链接: http://lawlite.me/2016/11/05/搭建自己的VPN/
- 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议 。转载请注明出处!