在现代企业办公环境中,远程访问内网资源已成为常态,无论是员工出差、居家办公,还是分支机构互联,一个稳定可靠的虚拟私人网络(VPN)解决方案显得尤为重要,点对点隧道协议(PPTP)作为最古老的VPN协议之一,因其配置简单、兼容性好、支持广泛,至今仍在许多中小型企业和家庭网络中被使用,本文将详细介绍如何在Linux服务器上(以Ubuntu为例)搭建PPTP VPN服务,帮助你快速实现安全的远程访问。

第一步:准备工作
确保你拥有一台运行Linux系统的服务器(推荐Ubuntu 20.04或更高版本),并具备公网IP地址,如果你使用的是云服务器(如阿里云、腾讯云、AWS等),请确认防火墙已开放必要的端口:TCP 1723(用于控制连接)和GRE协议(协议号47,用于数据传输),注意:部分云服务商默认不开放GRE协议,需在安全组中手动添加规则。

第二步:安装PPTP服务组件
登录服务器后,执行以下命令安装ppp和pptpd(PPTP守护进程):

sudo apt update
sudo apt install pptpd -y

第三步:配置PPTP服务器
编辑配置文件 /etc/pptpd.conf,设置本地IP地址(即服务器的内网IP)和分配给客户端的IP池:

sudo nano /etc/pptpd.conf
localip 192.168.1.1
remoteip 192.168.1.100-150

localip 是服务器的局域网IP,remoteip 是分配给客户端的IP范围(建议保留足够空间供多用户使用)。

第四步:设置用户认证
创建用户账号和密码,编辑 /etc/ppp/chap-secrets 文件:

sudo nano /etc/ppp/chap-secrets

格式为:用户名 密码 IP地址(可选)。

user1 * mypassword *

第五步:启用IP转发和配置iptables
为了让客户端能访问外网,需开启内核IP转发功能,编辑 /etc/sysctl.conf,取消注释:

net.ipv4.ip_forward=1

然后应用配置:

sudo sysctl -p

接着配置iptables规则,允许PPTP流量通过并做NAT转换:

sudo iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
sudo iptables -A INPUT -p gre -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
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

最后保存规则:

sudo iptables-save > /etc/iptables/rules.v4

第六步:启动服务并测试
重启pptpd服务:

sudo systemctl restart pptpd
sudo systemctl enable pptpd

在Windows客户端上,打开“网络和共享中心” → “设置新的连接或网络” → “连接到工作区”,选择“使用我的Internet连接(VPN)”,输入服务器IP地址和之前配置的用户名密码即可连接。

注意事项:
虽然PPTP部署简单,但其安全性较低(使用MS-CHAPv2加密,易受字典攻击),建议仅在信任的内部网络中使用,若需更高安全性,应考虑使用OpenVPN或WireGuard替代方案,定期更新密码、限制并发连接数、结合SSH密钥认证等措施可进一步提升防护能力。


PPTP虽然老旧,但在特定场景下依然实用,通过本文步骤,你可以快速搭建一个可用的PPTP VPN服务,满足基本远程访问需求,对于追求安全性的用户,建议后续迁移至更现代的协议,网络安全无小事,合理配置是保障的第一步。

手把手教你搭建PPTP VPN,从零开始实现安全远程访问  第1张

VPN加速器|半仙VPN加速器-免费VPN梯子首选半仙VPN