1.首先检查你的vps主机的 TUN-TAP/PPP 有没有启用

cat /dev/net/tun

启用的话输出可能5花八门,反正不止一种啦,比如下面算正常

cat: /dev/net/tun: File descriptor in bad state

没启用的话显示权限不够,被拒绝,没启用显示如下

cat: /dev/net/tun: Permission denied

ppp用下面命令看

cat /dev/ppp

有下面输出就是可以!如果没有显示没有请不要惊慌,查看步骤11

cat: /dev/ppp: No such device or address

如果没有启用请向你的主机商提交一个ticket要求开通这两个服务

Hello

Could you enabled TUN-TAP and PPP for me? I want run pptp-vpn on my VPS.

Thank you.

开启后确认下可以开始正式安装

2.升级系统包

yum update -y

3.检查是否安装ppp iptables没有的话进行安装(CentOS是默认安装并开启防火墙的,第2行大可不必执行!)

yum install -y ppp
yum install -y iptables

4.安装pptpd

pptpd包自己找最新的哈 目录http://poptop.sourceforge.net/yum/stable/packages/,省事就直接复制下面的吧

rpm -ivh http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.i386.rpm

5.配置pptp

首先我们要编辑/etc/pptpd.conf文件:

vim /etc/pptpd.conf

把下面字段前面的#去掉即可:

localip 10.8.0.1
remoteip 10.8.0.234-238,10.8.0.245

接下来再编辑/etc/ppp/options.pptpd:

vim /etc/ppp/options.pptpd

去掉ms-dns前面的#,并修改成如下字段:

ms-dns 8.8.8.8
ms-dns 8.8.4.4

找到require-mppe-128这行在前面加#

6.设置VPN帐号

我们需要编辑/etc/ppp/chap-secrets这个文件:

vim /etc/ppp/chap-secrets

直接输入如下字段,username,password可以换成其他字段:
username pptpd password *

7.修改内核设置,支持转发

编辑/etc/sysctl.conf文件:

vim /etc/sysctl.conf

将“net.ipv4.ip_forward”改为1:

net.ipv4.ip_forward=1

同时在“net.ipv4.tcp_syncookies = 1”前面加# :

# net.ipv4.tcp_syncookies = 1

保存退出,并执行下面的命令来生效它:

sysctl -p

8.添加iptables防火墙转发(to-source前面的是两个半角减号!

iptables -t nat -A POSTROUTING -s 10.8.0.0/16 -j SNAT –to-source 你的VPS主机ip

保存iptables转发规则:

/etc/init.d/iptables save

重启iptables:

/etc/init.d/iptables restart

9.重启pptp并设置自启动

/etc/init.d/pptpd start
chkconfig pptpd on
chkconfig iptables on

10.客户端数据加密选择无/可选加密,请两种都试一下。

11.发现619错误,解决如下

(1)如果执行cat /dev/ppp没有不存在,就执行下面,否则不执行

rm -r /dev/ppp

(2)执行

mknod /dev/ppp c 108 0

嫌麻烦的就复制下面命令一键执行吧,注意该替换的要替换注意红色是双减号,连不上的解决方案参照步骤11

VPN_IP=1.2.3.4
VPN_SERVER_NO=1
yum update -y
yum install -y ppp
yum install -y iptables
rpm -ivh http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.i386.rpm
echo “localip 10.$VPN_SERVER_NO.0.1” >> “/etc/pptpd.conf”
echo “remoteip 10.$VPN_SERVER_NO.0.151-200,10.$VPN_SERVER_NO.0.245” >> “/etc/pptpd.conf”
sed -i ‘s#require-mppe-128#\#require-mppe-128#’ /etc/ppp/options.pptpd
sed -i ‘s#\#ms-dns 10.0.0.1#ms-dns 8.8.8.8#’ /etc/ppp/options.pptpd
sed -i ‘s#\#ms-dns 10.0.0.2#ms-dns 8.8.4.4#’ /etc/ppp/options.pptpd
echo “username pptpd password *” >> /etc/ppp/chap-secrets
sed -i ‘s#net.ipv4.ip_forward = 0#net.ipv4.ip_forward = 1#’ /etc/sysctl.conf
sed -i ‘s#net.ipv4.tcp_syncookies = 1#\#net.ipv4.tcp_syncookies = 1#’ /etc/sysctl.conf
sysctl -p
iptables -t nat -A POSTROUTING -s 10.$VPN_SERVER_NO.0.0/16 -j SNAT to-source $VPN_IP
/etc/init.d/iptables save
/etc/init.d/iptables restart
/etc/init.d/pptpd start
chkconfig pptpd on
chkconfig iptables on

修改日志
V1.2 加入命令一键复制执行
(全文完,欲知与Freeradius 2 和Mysql集成的请点击这里 )