买了一台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 日志