CentOS7 搭建pptp服务器

1. 检查是否支持

若你使用XEN架构的VPS,下面的步骤不用执行
检测PPP是否开启:

cat /dev/ppp

开启成功的标志:cat: /dev/ppp: No such file or directory 或者 cat: /dev/ppp: No such device or address,可以继续

2. 安装组件

运行下面的命令安装iptables、ppp、pptpd
在这之前,请您先更新yum源,以防错误:

yum install ppp iptables pptpd

运行完成后,应该顺利安装完成了需要的组件

3. 配置组件

  • 编辑pptpd.conf:
vim /etc/pptpd.conf
  • /etc/pptpd.conf
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
  • 编辑options.pptpd
vim /etc/ppp/options.pptpd
  • 搜索ms-dns,去掉搜索到的两行ms-dns前面的#,并修改为下面的字段
ms-dns 8.8.8.8
ms-dns 8.8.4.4
  • 接下来编辑/etc/ppp/chap-secrets设置VPN的帐号密码
vim /etc/ppp/chap-secrets
  • 添加一行,按照下面的格式写入你的用户名和密码
用户名 pptpd 密码 *

注意:上面的用户名和密码都区分大小写

  • 接下来修改内核参数,运行下面的命令编辑sysctl.conf
vim /etc/sysctl.conf
  • 在conf末尾添加下面的代码,使内核支持转发
net.ipv4.ip_forward=1
  • 运行下面的命令使内核修改生效
sysctl -p
  • 添加下面的iptables转发规则(直接在SSH运行下面命令即可)
#XEN
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
#OpenVZ
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source VPS公网IP
  • 但是添加转发规则后重启就会失效,Centos 6系统可以使用service iptables save保存配置,但Centos 7不支持,我们需要将配置写入rc.local文件中,开机自动设置,运行下面的命令赋予rc.loacl执行权限:
chmod +x /etc/rc.d/rc.local
  • 编辑rc.local,并把上面的转发规则写到文件末尾
echo "iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE" >>/etc/rc.d/rc.local

4. 启动组件并加入开机启动

#/etc/init.d/pptpd start
#chkconfig pptpd on
systemctl start pptpd
systemctl enable pptpd

现在就可以使用你的设备连接到你的VPN了,若配置正确,就可以正常连接并上网了

错误排除

1. 619错误

  • 请检查上面的配置是否全部正常执行完毕

  • 运行下面的命令尝试修复

rm /dev/ppp
mknod /dev/ppp c 108 0
  • 若还是不行,运行下面的命令编辑pptpd.conf,并找到logwtmp,前面加#注释掉,再重启服务
vim /etc/pptpd.conf
  • 请检查你的路由器是否支持PPTP穿透,请尝试连接公用VPN测试,或更换路由器测试,或直接连接宽带测试,若确实是路由器不支持PPTP穿透,可以尝试搭建L2TP VPN
  • 检查用户名密码是否有误
  • 请向服务提供商询问是否支持搭建VPN

2. 800错误

  • 请检查服务器上的PPTPD是否正常启动,运行下面的命令检查pptp端口和进程

进程:

ps -ef |grep pptpd

端口:

netstat -nutap | grep pptpd
  • 请检查计算机能不能正常连接到服务器,可以尝试ping服务器
  • 请检查iptables是否拦截了PPTPD端口,可以尝试用下面的命令打开端口
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT

若发现有效,记得将它加入rc.local文件中

  • 检查上面的配置是否都执行完毕

3. 错误651

  • 运行下面的命令编辑pptpd.conf,并找到logwtmp,前面加#注释掉,再重启服务
vim /etc/pptpd.conf
  • 检查用户名和密码是否正确
  • 检查上面的配置是否都执行完毕

Leave a Reply

Your email address will not be published. Required fields are marked *