type
Post
status
Published
date
Jan 6, 2021 15:46
slug
summary
阿里云轻量服务器(CentOS 7)搭建 PPTP VPN 实战:pptpd 安装、DNS/账号配置、IP 转发、iptables NAT、防火墙策略及 Windows 客户端连接。⚠️ PPTP 安全性较低,生产环境推荐 WireGuard/OpenVPN。
tags
Infrastructure
category
DevOps
icon
password
wordCount
898
前言
这篇笔记记录了在阿里云轻量应用服务器上部署 PPTP(pptpd) 的完整过程。
PPTP 协议较老,安全性一般,更推荐优先使用 WireGuard 或 OpenVPN。如果你必须用 PPTP(例如兼容旧设备或特定网络环境),再继续按本文操作。
概述
目标:在阿里云轻量应用服务器上部署
pptpd,让客户端连上 VPN 后通过该服务器公网 IP 访问外网。准备工作
- 购买一台阿里云轻量应用服务器
- 进入阿里云官网:https://www.aliyun.com/
- 产品路径:产品 → 弹性计算 → 轻量应用服务器
- 系统建议:CentOS 7.x(本文以 CentOS 7.3 为例)


- 在控制台开放端口
- 进入服务器控制台:安全 → 防火墙
- 放行 TCP 1723(PPTP 控制通道)
如果你后续开启了更严格的防火墙策略,还需要确保 GRE 协议(47)可用。轻量服务器的安全策略界面通常不直接显示 GRE,但实际连通性会受网络与系统防火墙规则影响。

安装与配置 pptpd
1)确认内核模块支持
2)安装依赖与服务

3)配置 /etc/pptpd.conf
编辑文件:
确保配置包含:
localip:服务器用于 PPTP 的地址,通常填写服务器公网 IP。
remoteip:分配给客户端的内网地址段。
示例:

4)配置 DNS:/etc/ppp/options.pptpd
编辑文件:
添加或修改为(示例使用阿里公共 DNS,也可替换为其他公共 DNS):

5)创建账号密码:/etc/ppp/chap-secrets
编辑文件:
按格式新增账号,一行一个:
不要使用示例弱密码。建议使用长随机密码,并限制可用 IP(如果你明确知道客户端出口 IP)。

6)设置 MTU(可选但常见需要)
编辑文件:
在如下行之后:
添加:

7)开启转发:/etc/sysctl.conf
编辑文件:
末尾添加:
使配置生效:
防火墙与 NAT 配置
方案 A:直接关闭 firewalld(简单但风险更高)
方案 B:保留 firewalld,只开放端口(更推荐)
配置 NAT 转发(iptables)
最常见的 MASQUERADE 规则:
不同虚拟化架构可能需要不同写法。可以先查看 VPS 架构:
架构 | 示例规则 |
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 你的公网IP |
如果你明确要使用 SNAT(把
你的公网IP 替换为实例公网 IP):一份更完整的 iptables 示例(按需取用)
保存规则:
如果提示
service 不支持,请安装 iptables-services:
启动服务
重启 pptpd:
如果你使用了 iptables-services,也重启 iptables:
Windows 连接 VPN
- 打开 Windows 设置 → 网络和 Internet
- 进入 VPN → 添加 VPN 连接
- 按以下要点填写
- VPN 提供商:Windows(内置)
- 服务器名称或地址:你的服务器公网 IP
- VPN 类型:PPTP
- 用户名/密码:对应
/etc/ppp/chap-secrets
- 保存后连接



结尾
如果你能成功拨号但无法上网,优先检查三件事:
net.ipv4.ip_forward = 1是否生效
- NAT 规则是否正确匹配了客户端网段
192.168.0.0/24
- 服务器防火墙与安全组是否放行了 PPTP 相关通信
后续如果你希望把这套 VPN 用于更长期、更安全的访问,建议迁移到 WireGuard,并把账号体系、访问控制、日志与告警一并补齐。
参考
- 阿里云官网:https://www.aliyun.com/
.jpg?table=block&id=30052c4c-a1ae-81d3-a6ea-e3c02500ad2a&t=30052c4c-a1ae-81d3-a6ea-e3c02500ad2a)