手把手教你搭建PPTP VPN:从零开始实现安全远程访问
作为一名网络工程师,我经常被问到:“如何在公司或家庭网络中安全地远程访问内部资源?”答案之一就是搭建一个点对点隧道协议(PPTP)虚拟私人网络(VPN),尽管近年来IPSec和OpenVPN等更安全的方案逐渐普及,但PPTP因其配置简单、兼容性强(尤其在老旧系统如Windows XP/7中),仍然是许多小型企业或个人用户快速部署远程访问的首选,本文将带你一步步完成PPTP VPN的搭建过程,适用于Linux服务器(以Ubuntu为例)和Windows客户端。
确保你有一台运行Linux系统的服务器(可以是本地物理机、云主机或虚拟机),并拥有公网IP地址,这是关键前提——因为PPTP依赖于服务器的公网地址来接收来自外部的连接请求。
第一步:安装PPTP服务端软件
在Ubuntu上,我们使用pptpd(PPTP Daemon)作为服务端程序,打开终端,执行以下命令:
sudo apt update sudo apt install pptpd -y
安装完成后,需要配置PPTP的核心参数,编辑配置文件:
sudo nano /etc/pptpd.conf
localip 192.168.1.1
remoteip 192.168.1.100-200
这表示:服务器内网IP为192.168.1.1,分配给客户端的IP范围为192.168.1.100到200,你可以根据实际网络调整。
第二步:设置用户认证
编辑PPP配置文件,定义用户名和密码:
sudo nano /etc/ppp/chap-secrets
添加一行格式如下:
这里“user1”是用户名,“mypassword”是密码,星号表示允许任意IP接入,建议生产环境中限制特定IP或启用双因素认证。
第三步:配置DNS和路由
编辑/etc/ppp/options.pptpd,添加DNS服务器以便客户端能解析互联网域名:
ms-dns 8.8.8.8
ms-dns 8.8.4.4
第四步:启用IP转发
为了让PPTP客户端能够访问服务器所在局域网内的其他设备,必须开启IP转发功能:
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf sudo sysctl -p
第五步:配置防火墙规则
PPTP使用TCP端口1723和GRE协议(协议号47),需放行这两个入口:
sudo iptables -A INPUT -p tcp --dport 1723 -j ACCEPT sudo iptables -A INPUT -p gre -j ACCEPT sudo iptables -A FORWARD -i ppp+ -o eth0 -j ACCEPT sudo iptables -A FORWARD -i eth0 -o ppp+ -m state --state RELATED,ESTABLISHED -j ACCEPT
最后重启PPTP服务:
sudo systemctl restart pptpd sudo systemctl enable pptpd
至此,服务端已部署完成,在Windows客户端上,打开“网络和共享中心”→“设置新的连接或网络”→“连接到工作区”→输入服务器公网IP,选择“使用我的Internet连接(VPN)”,然后输入刚才创建的用户名和密码即可连接。
⚠️ 注意事项:
- PPTP安全性较低(易受MPPE加密破解),仅适合非敏感数据传输;
- 若使用云服务器,请确认服务商是否支持GRE协议(部分VPS禁用);
- 建议结合SSL/TLS或WireGuard等现代协议提升安全性。
通过以上步骤,你就能快速构建一个可用的PPTP VPN环境,满足基本远程办公需求,网络安全无小事,后续可考虑升级至OpenVPN或ZeroTier等更先进的解决方案。

半仙加速器-海外加速器|VPN加速器|vpn翻墙加速器|VPN梯子|VPN外网加速


