# 【教程】centos安装pptpd(vpn)最详细的教程+一键安装包 > 一键安装包地址: http://blog.diahosting.com/linuxtutorial/pptpd/ 系统要求:CentOS 5 32bits/64bits。 使用方法: wget http://www.diahosting.com/dload/pptpd.sh sh pptpd.sh 一键安装包地址: http://blog.diahosting.com/linux-tutorial/pptpd/ 系统要求:CentOS 5 32bits/64bits。 使用方法: ``` wget http://www.diahosting.com/dload/pptpd.sh sh pptpd.sh ``` 安装完成后会提示vpn用户名和密码。 VPN用户管理: 直接编辑/etc/ppp/chap-secrets文件,按照相同格式添加用户名和密码即可。 如有出入,参考下面教程修改配置文件 详细安装教程: 1、检查服务器是否有必要的支持.如果检查结果没有这些支持的话,是不能安装pptp的,执行指令: ``` #modprobe ppp-compress-18 && echo ok ``` 这条执行执行后,显示”ok”则表明通过.不过接下来还需要做另一个检查,输入指令: ``` #cat /dev/net/tun ``` 如果这条指令显示结果为下面的文本,则表明通过: ``` cat: /dev/net/tun: File descriptor in bad state ``` 上述两条均通过,才能安装pptp.否则就只能考虑openvpn,或者请你的服务商来解决这个问题. 2、安装ppp和iptables(iptables可选).默认情况下,完整的CentOS是带有这两个组件的,但是精简版的系统可能没有.我们输入下面的命令来确认,如果没有则进行安装,有的话系统不会做任何动作: ``` #yum install -y ppp iptables ``` 3、安装pptp.这个软件在yum源里是没有的,我们需要手动下载,我们先切换到tmp目录: 然后执行下面的命令来下载pptp安装包: (32位系统使用) ``` #wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm ``` (64位系统使用) ``` #rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm ``` 如果你的CentOS是32位的,则执行32位的那条指令;如果是64位的CentOS,则执行64位的那条指令. 接下来安装pptp,同样分32位和64位系统: (32位系统使用) ``` #rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm ``` (64位系统使用) ``` #vim /etc/pptpd.conf ``` 4、配置pptp.首先我们要编辑/etc/pptpd.conf文件: ``` localip 192.168.0.1 remoteip 192.168.0.234-238,192.168.0.245 ``` 找到”locapip”和”remoteip”这两个配置项,将前面的”;”注释符去掉,更改为你期望的IP段值.localip表示服务器的IP,remoteip表示分配给客户端的IP地址,可以设置为区间.这里我们使用pptp默认的配置: ``` #vim /etc/ppp/options.pptpd ``` 注意,这里的IP段设置,将直接影响后面的iptables规则添加命令.请注意匹配的正确性,如果你嫌麻烦,建议就用本文的配置,就可以一直复制命令和文本使用了. 接下来我们再编辑/etc/ppp/options.pptpd文件,为VPN添加Google DNS: ``` ms-dns 8.8.8.8 ms-dns 8.8.4.4 ``` 在末尾添加下面两行: ``` #vim /etc/ppp/chap-secrets ``` 5、设置pptp VPN账号密码.我们需要编辑/etc/ppp/chap-secrets这个文件: ``` test pptpd 1234 * ``` 在这个文件里面,按照”用户名 pptpd 密码 \*”的形式编写,一行一个账号和密码.比如添加用户名为test,密码为1234的用户,则编辑如下内容: ``` #vim /etc/sysctl.conf ``` 6、修改内核设置,使其支持转发.编辑/etc/sysctl.conf文件: ``` net.ipv4.ip_forward=1 ``` 将”net.ipv4.ip\_forward”改为1,变成下面的形式. ``` #sysctl -p ``` 保存退出,并执行下面的命令来生效它: ``` #iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE ``` 7、添加iptables转发规则.经过前面的6个步骤,我们的VPN已经可以拨号了,但是还不能访问任何网页.最后一步就是添加iptables转发规则了,输入下面的指令: ``` #/etc/init.d/iptables save ``` 需要注意的是,这个指令中的”192.168.0.0/24″是根据之前的配置文件中的”localip”网段来改变的,比如你设置的”10.0.0.1″网段,则应该改为”10.0.0.0/24″.此外还有一点需要注意的是eth0,如果你的外网网卡不是eth0,而是eth1(比如SoftLayer的服务器就是这样的情况),那么请记得将eth0也更改为对应的网卡编号,不然是上不了网的. 然后我们输入下面的指令让iptables保存我们刚才的转发规则,以便重启系统后不需要再次添加: ``` #/etc/init.d/iptables restart ``` 然后我们重启iptables: ``` #/etc/init.d/pptpd restart ``` 8、重启pptp服务.输入下面的指令重启pptp: ``` #chkconfig pptpd on #chkconfig iptables on ``` 现在你已经可以连接自己的VPN并浏览网页了.不过我们还需要做最后的一步. 9、设置开机自动运行服务.我们最后一步是将pptp和iptables设置为开机自动运行,这样就不需要每次重启服务器后手动启动服务了,当然你不需要自动启动服务的话可以忽略这一步,输入指令: ``` iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -j SNAT --to-source 192.168.8.1 or iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -j SNAT --to-source 服务器外网ip ``` 这样就大功告成了,赶快到Windows下建立一个VPN连接,IP填写自己的服务器IP,用户名和密码填写自己设置好的用户名和密码,点击”连接”,成功后就可以使用服务器去浏览网页啦. 备注: 多ip服务器转发指定规则 ``` vi /etc/ppp/ip-up ``` 如果iphone之类的设备能连上,访问网页或者youtube特别慢,需要做如下修改: ``` /sbin/ifconfig $1 mtu 1400 ``` 增加一行 ``` iptables -A FORWARD -p tcp --syn -s 192.168.8.0/24 -j TCPMSS --set-mss 1356 ``` 或者修改iptables规则 ``` [root@www i386]# service pptpd restart Shutting down pptpd: [ OK ] Starting pptpd: [ OK ] Warning: a pptpd restart does not terminate existing connections, so new connections may be assigned the same IP address and cause unexpected results. Use restart-kill to destroy existing connections during a restart. ``` 1356的值可能需要自己调整,调节到能保证网络正常使用情况下的最大值。 启动VPN服务 这里用的是restart旨在说明重启服务不会终结当前已经建立的VPN连接,见Warning: ``` ``` 上面这段话的意思就是重启服务不会终结已经建立起来的连接而且还会因为再次分配IP造成未知错误,建议使用restart-kill的方式来重启服务。 还可以用/etc/rc.d/init.d/pptpd start或者/etc/init.d/pptpd start的方式来重启(/etc/init.d是一个软链接指向/etc/rc.d/init.d) --- **分类**:建站 **作者**:子龙 **链接**:https://octohz.com/p/3302