在自己的VPS上面安装PPTP搭建VPN可是折腾了我好多时间,网上教程太多但是又乱,搞了很久还是多多少少有问题。

为了方便自己以后安装VPN,故写了篇文章,给自己参考参考。

本教程是针对已经开通了PPP和TUN的VPS,OpenVZ只有开通了PPP才能搭建VPN。而XEN的VPS则木有这个要求。

教程基于CentOS系统进行安装配置。其他系统请参考其他方法。

确定已经开通了PPP和TUN(XEN略过这个步骤)

SSH到VPS,然后在终端输入:

cat /dev/ppp

如果显示:

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

则表示通过,其他则不通过。不通过的话请联系VPS提供商请求开通PPP模块。

然后输入:

cat /dev/net/tun

如果显示:

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

则表示通过。

安装PPP,PPTP

建议删除本机的PPP,重新安装。终端下输入:

yum remove ppp

删除完成之后,安装libpcap:

yum -y install libpcap

然后安装PPP:

rpm -ivh https://lccss.googlecode.com/files/ppp-2.4.5-5.el6.i686.rpm

或者

yum -y install ppp

再安装PPTP:

rpm -ivh http://lccss.googlecode.com/files/pptpd-1.3.4-1.el6.nux.i686.rpm

如果系统是CentOS6的话,可以直接用yum安装PPTP。不过默认的yum没有PPTP包,需要更新源。

rpm -Uvh http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm

然后

yum install pptpd

至此基本上的软件都安装好了。接下来是配置。
配置

vi /etc/pptpd.conf

去掉#

# localip 192.168.0.1 改为 localip 192.168.0.1
# remoteip 192.168.0.234-238,192.168.0.245 改为 remoteip 192.168.0.234-238,192.168.0.245

vi /etc/ppp/options.pptpd

去掉#,并替换为google的dns

# ms-dns 192.168.0.1 改为 ms-dns 8.8.8.8
# ms-dns 192.168.0.2 改为 ms-dns 8.8.4.4

vi /etc/ppp/chap-secrets

创建用户名密码和限定IP,格式为:用户名 ppptp 密码 IP地址
每个字段中间用空格分开,最后的IP地址如果不限定,请用*代替,例如:

username pptpd password *

这就代表了你创建了一个叫username的用户,密码是password,任何IP都可以连接

vi /etc/sysctl.conf

net.ipv4.ip_forward = 0 改为 net.ipv4.ip_forward = 1

sysctl -p

如果此时报错的话,如下所示:

error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key

那么尝试输入命令:

modprobe bridge
lsmod|grep bridge

如果又错误的话,显示:

FATAL: Module bridge not found.

则在终端输入:

rm -f /sbin/modprobe
ln -s /bin/true /sbin/modprobe

以上是修复modprobe

rm -f /sbin/sysctl
ln -s /bin/true /sbin/sysctl

以上是修复sysctl

然后再执行

sysctl -p

一般情况下问题解决了。
接下来是配置防火墙。
OpenVZ的用户在终端输入:

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 1.2.3.4 //1.2.3.4是你VPS的IP

XEN输入:

iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -o eth0 -j MASQUERADE

之后保存规则,重启防火墙。

/etc/init.d/iptables save
/etc/init.d/iptables restart

然后启动PPTP服务:

service pptpd start

然后在电脑上新建VPN连接,配置好VPN之后输入用户名和密码之后,如无意外的话VPN能正常工作了。
接着最后一步工作,设置PPTP和防火墙开机自启动:

chkconfig iptables on
chkconfig pptpd on

完毕。教程到此结束。