在VPS上安装PPTP VPN,简直完美的阐释了“会者不难,难者不会”的道理。我谷歌百度必应了好几天,几乎网上大部分教程都不能完全正确,终于在昨天连滚带爬的给整出来了,怕忘了,赶紧写下来。
本文适合于能开通TUN和PPP的VPS,仅限Xen和OpenVZ,OpenVZ如果用的是SolusVM控制面板,则可以自己在后台打开。对了,我的操作系统是CentOS6.4 32位。
一、确认开通了TUN和PPP
Xen用户请忽略这一步!
复制代码代码如下:
cat /dev/ppp
结果输出为: cat: /dev/ppp: No such device or address
复制代码代码如下:
cat /dev/net/tun
结果输出为: cat: /dev/net/tun: File descriptor in bad state
如果这两项输出的和我给出的不一样,但只要不是“Permission denied”就都没问题,否则是一定不能装的
二、安装PPP,PPTP
建议先卸载自带的PPP
复制代码代码如下:
yum remove ppp
安装libpcap
复制代码代码如下:
yum -y install libpcap
安装ppp-2.4.5-5
复制代码代码如下:
rpm -ivh https://lccss.googlecode.com/files/ppp-2.4.5-5.el6.i686.rpm
或者
复制代码代码如下:
yum -y install ppp
安装pptpd-1.3.4-2
复制代码代码如下:
rpm -ivh http://lccss.googlecode.com/files/pptpd-1.3.4-1.el6.nux.i686.rpm
更新一下,如果是CentOS6,可以直接使用yum安装,省得上边这么麻烦。默认的yum是没有pptp的,所以要先升级源:
复制代码代码如下:
rpm -Uvh http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm
然后直接安装pptpd即可(ppp和libpcap会一块安装的)
复制代码代码如下:
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
Xen和OpenVZ的防火墙转发有所不同
OpenVZ请使用:
复制代码代码如下:
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 你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
开启pptpd
复制代码代码如下:
service pptpd start
好了,现在你就可以用电脑连接你的pptp vpn了!
四、其他一些小问题
619错误, 试试:
复制代码代码如下:
rm -r /dev/ppp
mknod /dev/ppp c 108 0
800错误,我遇到的都是防火墙问题,由于对iptables非常不懂,所以我就用了个傻方法,就是清除掉之前所有的防火墙规则,然后再使用上边的规则,保持重启就好了。清除之前防火墙规则:
复制代码代码如下:
iptables -F
iptables -X
iptables -Z