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

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

准备工作

  1. 一台运行Linux的服务器(推荐Ubuntu Server 20.04或更高版本);
  2. 固定公网IP地址(若无静态IP,可考虑使用DDNS动态域名解析);
  3. 开放必要的端口:TCP 1723(PPTP控制端口)、GRE协议(协议号47);
  4. 确保防火墙允许这些流量通过(如iptables或ufw)。

安装与配置PPTP服务

  1. 更新系统并安装必要软件包:

    sudo apt update && sudo apt install pptpd -y
  2. 配置PPTP主文件 /etc/pptpd.conf
    使用文本编辑器打开该文件,添加以下内容:

    option /etc/ppp/options.pptpd
    localip 192.168.1.1
    remoteip 192.168.1.100-200

    localip是服务器在PPTP子网中的IP,remoteip是分配给客户端的IP范围。

  3. 设置PPP选项文件 /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
  4. 创建用户账号:
    /etc/ppp/chap-secrets 文件中添加用户名和密码,格式为:

    # client    server    secret        IP addresses
    user1     pptpd     password123     *

    这表示用户名 user1 密码为 password123,允许任意IP连接。

  5. 启用IP转发和NAT规则:
    修改 /etc/sysctl.conf,取消注释:

    net.ipv4.ip_forward=1

    执行命令使配置生效:

    sudo sysctl -p

    添加iptables规则实现NAT:

    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
  6. 重启PPTP服务并设置开机自启:

    sudo systemctl restart pptpd
    sudo systemctl enable pptpd

测试与优化

  1. 客户端连接:在Windows或Mac设备上,使用“新建连接”功能选择PPTP类型,输入服务器IP和账号密码即可连接。
  2. 检查日志:查看 /var/log/syslog/var/log/pptpd.log 排查问题。
  3. 安全建议:虽然PPTP简单易用,但其安全性较低(已被证明存在漏洞),建议仅用于内部非敏感网络环境,并搭配其他安全措施如强密码策略、定期更换证书等。


PPTP虽非最新协议,但在某些场景下仍具实用价值,通过以上步骤,你可以快速搭建一个可用的PPTP服务器,满足基本远程接入需求,对于安全性要求更高的场景,建议升级到OpenVPN或WireGuard等更现代的方案,但作为入门级实践,PPTP仍是理解VPN原理的良好起点。

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

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