CentOS 7 系统上配置 PPTP服务器
请注意:PPTP 协议安全性较低,不建议用于高安全需求场景,仅适用于测试或临时用途。
📌 前提条件
- 一台运行 CentOS 7 的云服务器(如阿里云、腾讯云、AWS 等)
- 公网 IP 地址
- root 权限或 sudo 权限
- 云服务商安全组已开放 TCP 1723 和 GRE 协议(协议号 47)
⚠️ 阿里云/腾讯云等需在控制台放行 GRE(协议47),否则无法连接!
🔧 第一步:更新系统并安装必要工具
yum update -y
yum install -y epel-release
yum install -y ppp pptpd iptables-services
ppp是 PPTP 依赖的基础协议包,pptpd是 PPTP 服务端程序。
🔧 第二步:配置 pptpd
1. 编辑主配置文件 /etc/pptpd.conf
vi /etc/pptpd.conf
取消注释或添加以下内容:
option /etc/ppp/options.pptpd
logwtmp
localip 192.168.100.1 # VPN服务器本地IP(虚拟)
remoteip 192.168.100.100-200 # 分配给客户端的IP范围
打开注释并修改成自己的IP段
localip是 VPN 服务器在虚拟网络中的地址,remoteip是分配给连接用户的 IP 段。
2. 配置 PPP 选项
编辑 /etc/ppp/options.pptpd:
vi /etc/ppp/options.pptpd
确保包含以下内容:
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 8.8.8.8
ms-dns 8.8.4.4
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
上面内容都有,主要是打开ms-dns的注释并修改
使用 MS-CHAPv2 + MPPE 128位加密(PPTP 能提供的最强加密)。
3. 添加 VPN 用户
编辑 /etc/ppp/chap-secrets:
vi /etc/ppp/chap-secrets
格式为:
# 用户名 服务名 密码 客户端IP(* 表示任意)
"youruser" pptpd "yourpassword" *
例如:
vpnuser pptpd MySecurePass123 *
注意:用户名和密码用空格或制表符分隔,建议用双引号避免特殊字符问题。
🔧 第三步:启用 IP 转发
编辑 sysctl 配置:
vi /etc/sysctl.conf
添加或修改:
net.ipv4.ip_forward = 1
然后生效配置:
sysctl -p
🔧 第四步:配置防火墙(iptables)
CentOS 7 默认使用 firewalld,但 PPTP 对 iptables 更友好。这里使用 iptables。
1. 启动并设置 iptables 开机自启
systemctl stop firewalld
systemctl disable firewalld
systemctl start iptables
systemctl enable iptables
2. 添加 NAT 和转发规则
# 假设你的公网网卡是 eth0(请根据实际情况替换,如 ens3、eth0 等)
# 查看网卡名:ip a
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -s 192.168.100.0/24 -j TCPMSS --clamp-mss-to-pmtu
iptables -A INPUT -p gre -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
3. 保存规则(重要!否则重启后失效)
service iptables save
# 或
/usr/libexec/iptables/iptables.init save
如果没有
service iptables save命令,请先安装:yum install -y iptables-service
云服务器的防火墙中也要放行1723这个端口

🔧 第五步:启动 pptpd 服务
systemctl start pptpd
systemctl enable pptpd
检查状态:
systemctl status pptpd
netstat -tulnp | grep :1723
应看到 pptpd 监听在 0.0.0.0:1723。
✅ 第六步:客户端连接测试
- Windows:网络设置 → 新建VPN → 类型选“PPTP”,输入服务器公网IP,使用你创建的用户名/密码。以下为win10的VPN设置界面

- 在网络里双击ipv4,查看设置

- 保持如上即可
- Android/iOS:设置 → VPN → 添加 PPTP 配置。
连接成功后,若想让所有流量走 VPN,请在客户端勾选 “使用远程网关”(Windows 叫 “Use default gateway on remote network”)。
🛠 常见问题排查
❌ 无法连接?
- 检查云平台安全组是否放行 TCP 1723 和 GRE(协议47)
- 执行
journalctl -u pptpd -f查看实时日志 - 检查
iptables -L -n -v是否有拦截
❌ 能连接但无法上网?
- 确认
ip_forward = 1 - 确认 NAT 规则中的网卡名正确(
-o eth0) - 客户端是否获取到了 192.168.100.x 的 IP?
⚠️ 安全提醒
- PPTP 使用 MS-CHAPv2 + MPPE,已被证明存在漏洞,不适用于敏感数据传输。
- 建议生产环境改用 WireGuard 或 OpenVPN。
- 限制用户数量、使用强密码、定期更换。









