admin 发表于 2012-11-3 13:08:34

CentOS下vps安装pptp VPN教程

1、检查服务器是否有必要的支持。如果检查结果没有这些支持的话,是不能安装pptp的。命令:
modprobe ppp-compress-18 && echo ok

这条执行执行后,显示“ok”则表明通过。不过接下来还需要做另一个检查,输入指令:
cat /dev/net/tun

如果显示如下信息,说明通过,如果不支持,可以给vps商发ticket开通tun,大部分美国vps商都可以支持:
cat: /dev/net/tun: File descriptor in bad state

上面的两个只要下面一条通过,就能安装VPN(pptp)
2、安装ppp和iptables。
yum install -y ppp iptables

3、安装pptp。

刚才用了yum安装了ppp,但是这里有个问题,几乎大部分的人都会在这里遇到ppp和pptpd不兼容的错误。因为yum安装ppp,总是安装最新版本的ppp,而由于安装的ppp的版本不同,那么就需要安装对应版本的pptpd才行。
我们要先查看已经安装的ppp的版本,在去找对应的pptpd版本。我手头刚好有两个vps,一个是前年装的pptp vpn,一个是一年后装的pptp vpn,所以,装的yum install ppp的版本不同。
使用下面的命令查看ppp的版本,前提你是yum安装的ppp。
旧的vps上的ppp版本显示:
#yum list installed ppp
显示:
ppp.i386                   2.4.4-2.el5                   installed
新的vps上的ppp版本显示;
#yum list installed ppp
显示:
ppp.i686                      2.4.5-5.el6                       @base
所以,要对根据ppp版本选择对应的pptpd版本。这里我主要列出常用的。
ppp 2.4.4——————>pptpd 1.3.4
ppp 2.5.0——————>pptpd 1.4.0
贴个ppp和pptpd各个版本的下载地址;http://poptop.sourceforge.net/yum/stable/packages/
大家下载的时候注意,分清楚你系统的版本是64位的还是32位的。我个人建议ppp用yum安装,pptpd用rpm的安装,因为如果全都rpm或者源码安装,依赖关系很是烦人。文件名含有数字64的就是64位版本,没有的就是32位版本。可以用下面的命令查看自己的系统是32位还是64位的。
#getconf LONG_BIT
下面假设我这里的ppp是2.4.4版本,然后安装pptpd
第一种安装pptpd的方法是直接用yum安装,让电脑自动选择对应的版本:
先加入yum源:
#rpm -Uvh http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm
然后用yum安装pptpd:
#yum install pptpd
这是最省时间和力气的。余下的和手动安装没什么区别了。

第二种是手动安装pptpd包:
对于32位CentOS,执行
wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm
rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm
对于64位CentOS,执行
wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm
rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm

64位安装的时候如果出现:http://www.ksharpdabu.info/?p=2178warning: pptpd-1.3.4-2.rhel5.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 862acc42: NOKEY
error: Failed dependencies:
ppp = 2.4.4 is needed by pptpd-1.3.4-2.rhel5.x86_64
原因是pptpd与PPP不兼容,那么,此时用#yum list installed ppp   命令查看ppp版本,极有可能ppp是2.4.5版本的。所以,我们要下载pptp1.4.0版本才行,而且这里是64位的系统。下载pptpd-1.4.0-1.el6.x86_64.rpm安装即可。这就是我说的出现版本不兼容的问题,当ppp版本和pptpd版本不兼容时候,就会出现类似的错误。
这里我分享下pptpd 下载地址;

看到有人建议用--nodeps --force 这个参数,我个人不建议,这个参数可能以后会出现奇怪的问题,但是如果实在不行,你就用吧

4、配置pptp。编辑/etc/pptpd.conf文件:
vim /etc/pptpd.conf

去掉前面的#去掉:
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245

按键盘“i”键插入修改,ctrl+o :wq 保存退出

再编辑/etc/ppp/options.pptpd这个文件:
vim /etc/ppp/options.pptpd

去掉ms-dns前面的#,修改成下面的数据(最好是服务商默认的):
ms-dns 8.8.8.8
ms-dns 8.8.4.4

5、设置你需要的VPN账号和密码。这里编辑/etc/ppp/chap-secrets:
vim /etc/ppp/chap-secrets

直接输入如下字段,vpsma可以换成其他字段,格式“用户名 pptpd 密码 *”的形式编写,如果需要多个账号就写多行,一行一个:
vpsma pptpd vpsma *

6、编辑/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

7、添加iptables转发规则。
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 1.1.1.1
#OpenVZ系统用此命令,1.1.1.1为你的VPS的IP地址
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
#XEN系统用这个命令

这里一定看清楚,里面的ip“192.168.0.0/24”要和前面的“localip”网段对应,还要注意网卡eth0,如果你的网卡不是eth0,就改成你相应的网卡名!

需要开放的其它端口:
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p tcp --dport 47 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT

保存你的iptables转发规则:
/etc/init.d/iptables save

重启iptables,命令:
/etc/init.d/iptables restart

8、重启下pptp,命令:
/etc/init.d/pptpd restart

9、把服务设置成开机自动运行运行:
chkconfig pptpd on
chkconfig iptables on

如果出现你的vpn安装好拨号时候提示错误619则输入命令:
mknod /dev/ppp c 108 0

VPS ROLL在安装完毕之后也出现了619,执行完毕上面命令后,不知道为什么没有生效,只有重启了VPS ROLL的vps,重启后拨号上网成功!


如果出现800错误,请确定防火墙中 REJECT 语句位于防火墙配置文件末尾(类似下面语句):(位置:/etc/sysconfig/iptables 如果无法上网删除后就可以上网了)
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited




页: [1]
查看完整版本: CentOS下vps安装pptp VPN教程