利用OpenVZ VPS在CentOS6搭建PPTP VPN的方法

9428064_980x1200_850
网上找了些方法,大部分是都卡在了 安装 pptp这一步上。情况是 pptp 和 ppp 版本不兼容或者与系统不兼容。。。

这次用Directspace的OpenVZ VPS搭建了 VPN试了下,感觉网速太不稳定了,不准备续费用下去了。。。

下面是步骤:

1、登陆SSH,检查VPS是否有必要的支持。如果检查结果没有这些支持的话,是无法安装pptp的。
有2个检查必须的,第一个检查:
cat /dev/net/tun

返回结果为下面的文本,表明通过:
cat: /dev/net/tun: File descriptor in bad state

第二个检查:
cat /dev/ppp

返回以下结果,则通过:
cat: /dev/ppp: No such device or address

返回:“Permission denied”则不通过。
上面的2条必须都通过,才可安装pptp。如果无法通过,只能去跟客服申请为你的VPS打开 TUN/TAP/PPP 功能了。或者在vps控制台去看看有没有启用这些功能的按钮。Directspace是在 vps控制台里启用就行

2、安装ppp和pptp

rpm -ivh http://poptop.sourceforge.net/yum/stable/packages/ppp-2.4.5-23.0.rhel6.x86_64.rpm (64位)

rpm -ivh http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.el6.x86_64.rpm (64位)

http://poptop.sourceforge.net/yum/stable/packages/ 如果不是 64位的 可以再 前面的网址找相应的版本。

3、配置pptp。首先我们要编辑/etc/pptpd.conf文件:

vim /etc/pptpd.conf
把下面字段前面的#去掉即可,此处的IP段可以任意,但是尽量注意不要跟本地网络的IP段有冲突

localip 192.168.80.1
remoteip 192.168.80.234-238,192.168.80.245
接下来再编辑/etc/ppp/options.pptpd:

vim /etc/ppp/options.pptpd
去掉ms-dns前面的#,并修改成如下字段:

ms-dns 8.8.8.8
ms-dns 8.8.4.4
4、设置pptp VPN账号密码。我们需要编辑/etc/ppp/chap-secrets这个文件:
vim /etc/ppp/chap-secrets
直接输入如下字段, 第一个是用户名,第三个是密码,可以任意指定自己想要的用户名

vpn pptpd vpnpass *
5、修改内核设置,使其支持转发。编辑/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
6、添加iptables转发规则。
iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -j SNAT –to-source 12.34.56.78
(OpenVZ, 192.168.80.0一定要和上面设置的IP段匹配,12.34.56.78为你的VPS的公网IP地址)
#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
(XEN)
保存iptables转发规则:
/etc/init.d/iptables save
重启iptables:

/etc/init.d/iptables restart
7、重启pptp服务。
/etc/init.d/pptpd restart
如果正常,到这里就OK了,不用管下面的错误了。否则请看错误说明。错误1: 如果出现错误619 则输入命令:
rm -r /dev/ppp
mknod /dev/ppp c 108 0
然后 reboot 重启VPS。
错误2: 如果出现错误800 ,这是因为虚拟机内核不支持mpPE,无法使用加密,用WINDOWS默认VPN连接会显示“证书信任错误”。解决方法:修改/etc/ppp/options.pptpd文件,在require-mppe-128字段前面加#即可,注释掉require-mppe-128这行就成功了