买了一台CentOS的VPS,想着放点什么,先搭建个VPN翻墙用吧,按照网上的方法整理好Mark一下。

1. 确保内核有mppe

modprobe ppp-compress-18 && echo ok

回显OK就说明支持

2. 安装PPP和iptables

[root@localhost ~]#yum -y install ppp*

[root@localhost ~]#yum -y install iptables

3. 下载并安装pptpd,下载地址http://poptop.sourceforge.net/yum/stable/packages/,根据系统下载合适的版本

4. 安装好pptpd后编辑/etc/pptpd.conf 设置IP池

[root@localhost ~]#vi /etc/pptpd.conf

localip 192.168.0.1 remoteip 192.168.0.234-238

5. 编辑/etc/ppp/options.pptpd 设置DHCP的DNS地址

[root@localhost ~]#vi /etc/ppp/options.pptpd

6. 编辑/etc/ppp/chap-secrets 添加登录VPN的账号和密码

[root@localhost ~]#vi /etc/ppp/chap-secrets

格式如:vpn      pptpd       123456      * 

               用户名    服务名    用户密码 分配的虚拟IP(*表示任意)

7. 编辑/etc/sysctl.conf 开启IP转发

[root@localhost ~]#vi /etc/sysctl.conf 

将“net.ipv4.ip_forward”改为1 

然后执行下面命令使配置生效

[root@localhost ~]#sysctl -p

8. 在iptables里添加NAT规则

[root@localhost ~]#iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -j SNAT –to-source 外网口IP

9. 设置pptpd自启动

[root@localhost ~]#chkconfig pptpd on

10. 这样设置完毕后还有一步需要配置,我就是在这出的问题,拨通VPN后能PING通外网IP但是PING不通域名,一般这样的情况都是缺少DNS造成的,这里是由于CentOS默认iptables策略没有开放DNS端口,我们手工添加一条策略

[root@localhost ~]#iptables -A INPUT -p udp -m udp –dport 53 -j ACCEPT

然后保存、重启iptables服务

[root@localhost ~]#service iptables save

[root@localhost ~]#service iptables restart

11. 重启服务器搞定收工!

备注:如果无法连接可以查看/var/log/message 日志