PPTP在CentOS上的搭建与配置指南
PPTP(PointtoPoint Tunneling Protocol)是一种广泛使用的VPN协议,通过串行接口对PPP协议进行封装,提供一种在公共网络上创建安全连接的方法,本文将详细介绍如何在CentOS上搭建和配置PPTP服务器,确保内容准确、全面且逻辑清晰,文章末尾将附上相关FAQs以解答常见问题。

一、硬件环境
服务端:CentOS Linux release 7.3.1611 (Core)
客户端:Windows Server 2008
网络环境:
服务端:公网IP为123.56.11.30,内网IP为172.25.30.66
客户端:内网IP为192.168.152.129
二、安装PPTP服务器
1、安装EPEL源

- yum install y epelrelease
2、安装PPTP服务
- yum install y ppp iptables pptpd
3、设置登录账号
编辑/etc/pptpd.conf
文件,添加或修改以下字段并保存退出:
- localip 172.25.30.66
- remoteip 172.16.0.0/24
4、配置DNS地址
编辑/etc/ppp/options.pptpd
文件,添加或修改以下字段并保存退出:
- msdns 114.114.114.114
- msdns 8.8.4.4
5、配置用户密码

编辑/etc/ppp/chaPSecrets
文件,添加如下内容并保存退出:
- # Secrets for authentication using CHAP
- # client server secret IP addresses
- user1 pptpd password
6、开启内核转发功能
编辑/etc/sysctl.conf
文件,添加以下命令并保存退出:
- net.ipv4.ip_forward = 1
刷新缓存:
- sysctl p
7、配置防火墙规则
启动防火墙:
- systemctl start firewalld
添加NAT转发规则:
- firewallcmd permanent addmasquerade
开启47及1723端口:
- firewallcmd permanent zone=public addport=47/tcp
- firewallcmd permanent zone=public addport=1723/tcp
设置规则:
- firewallcmd permanent direct addrule ipv4 filter INPUT 0 p gre j ACCEPT
- firewallcmd permanent direct addrule ipv4 filter OUTPUT 0 p gre j ACCEPT
- firewallcmd permanent direct addrule ipv4 FORWARD 0 i ppp+ o eth0 j ACCEPT
- firewallcmd permanent direct addrule ipv4 FORWARD 0 i eth0 o ppp+ j ACCEPT
- firewallcmd permanent direct passthrough ipv4 t nat I POSTROUTING o eth0 j MASQUERADE s 172.16.0.0/24
重启防火墙:
- firewallcmd reload
8、更改HTTP报文的包头字段长度
编辑/etc/ppp/ipup
文件,添加以下内容并保存退出:
- ifconfig $1 mtu 1356
9、启动PPTP服务
- systemctl start pptpd
查看服务状态:
- systemctl status pptpd
设置pptpd服务开机自启:
- systemctl enable pptpd
至此,PPTP服务已搭建完成,可以使用Windows或Mac通过VPN连接。
三、常见问题解答(FAQs)
Q1: 如何修改PPTP服务器的MTU值?
A1: 可以通过编辑/etc/ppp/ipup
文件来修改MTU值,添加以下内容并保存退出:
- ifconfig $1 mtu 1356
然后重启pptpd服务使更改生效。
Q2: 如何解决PPTP连接成功后无法访问网页的问题?
A2: 这通常是由于MSS(最大分段大小)和MTU(最大传输单元)不匹配导致的,可以尝试调整MTU值,如上所述,将MTU值修改为1356,或者检查防火墙设置是否正确允许PPTP流量。