L2TP、PPTP 与 SSTP:三种旧协议的现状与风险

Yalgorup 编辑部 · 更新于 2026年8月1日

一句话回答PPTP 的 MS-CHAPv2 认证在 2012 年被证明可在有限时间内破解,不应再用于任何需要保密的场景;L2TP 自身完全不加密,必须搭配 IPsec,且双层封装带来额外开销;SSTP 能伪装成 HTTPS,但由微软私有、缺乏公开审计。

核心要点

  • PPTP 的问题不是「加密强度不够」,而是认证环节可被离线破解,等于加密形同虚设。
  • L2TP 只负责建隧道,加密完全依赖 IPsec;「L2TP 加密」这个说法本身就不准确。
  • L2TP/IPsec 常用固定预共享密钥,多个客户共用同一个 PSK 是常见的实现弱点。
  • SSTP 走 TCP 443、外观接近 HTTPS,但闭源、几乎只在 Windows 生态可用,且有 TCP-over-TCP 问题。

PPTP:为什么它被判了死刑

PPTP 由微软牵头,1999 年以 RFC 2637 的形式发布,是最早普及的 VPN 协议。它用 TCP 1723 建立控制连接,用 GRE 封装数据,加密依赖 MPPE,身份验证通常是 MS-CHAPv2。

问题出在认证环节。2012 年的公开研究表明,MS-CHAPv2 的握手过程可以被归约成一次 DES 密钥的穷举 —— 也就是说,只要截获握手,就能在可预期的时间内还原出凭据。相应的破解工具随后公开。

这不是「算法老旧、强度偏低」的程度,而是认证可被离线还原,后续的加密因此失去意义。

另外两个实际问题:

  • GRE 协议不带端口,很多 NAT 环境下无法建立连接
  • MPPE 使用 RC4,本身也已被弃用

结论很明确:不要用 PPTP 传输任何你不希望被读到的东西。

L2TP:它根本不加密

L2TP(RFC 2661,第三版为 RFC 3931)的定位是「建隧道」,规范里就没有加密这回事。所以你看到的永远是 L2TP/IPsec 这个组合写法:L2TP 负责封装,IPsec 负责加密。

问题在开销:数据包先被 L2TP 封装一次,再被 IPsec 封装一次,包头叠加,有效载荷变小,加解密也做了两轮。同样的线路,L2TP/IPsec 通常比 IKEv2/IPsec 更慢。

还有一个常见的实现弱点:很多服务用固定的预共享密钥(PSK),且所有用户共用同一个。PSK 一旦泄露,攻击者就具备了发起中间人攻击的前提条件。

L2TP 使用 UDP 1701,配合 IPsec 时还要 500 和 4500,端口特征同样明显。

SSTP:微软的 HTTPS 伪装

SSTP 出现在 Windows Vista SP1 时代,思路很直接:把 PPP 帧塞进 SSL/TLS 连接,走 TCP 443。

优点是真实的:443 端口几乎不会被封,流量外观接近普通 HTTPS,在限制严格的网络里往往能连上。

代价也很明确:

  • 闭源。 规范虽然公开(MS-SSTP),但实现是微软的,没有像 OpenVPN、WireGuard 那样接受过广泛的独立审计。
  • 生态受限。 Windows 原生支持,其他平台要靠第三方实现。
  • TCP-over-TCP。 和 OpenVPN TCP 模式一样的重传叠加问题。

三者对比

PPTPL2TP/IPsecSSTP
加密MPPE/RC4,认证已被攻破IPsec,取决于配置TLS
端口TCP 1723 + GREUDP 1701/500/4500TCP 443
速度快(因为几乎没有保护)慢(双层封装)中等
穿透能力差(GRE 过不了 NAT)一般
开源
建议不要用有更好选择时不要用仅特定场景

今天该用什么

这三个协议出现的年代,网络环境和威胁模型都和现在不同。它们留在系统设置里主要是为了兼容老设备。

新的部署应当在 WireGuardOpenVPNIKEv2/IPsec 之间选择。如果一家服务商在 2026 年还把 PPTP 当作卖点列出来,这本身就是一个值得警惕的信号。

常见问题

PPTP 现在还有能用的地方吗?+

只剩下一种:在完全不涉及敏感数据、只是需要改变出口 IP 的老设备上临时使用。任何涉及账号、支付、隐私的场景都不该用它。

为什么路由器里还保留着 PPTP 选项?+

兼容性遗留。老设备、老系统只支持它,厂商为了不破坏既有配置而保留,并不代表推荐。

L2TP/IPsec 和 IKEv2/IPsec 差在哪?+

加密都靠 IPsec,但 L2TP 多套了一层封装,开销更大速度更慢,且没有 MOBIKE 漫游。IKEv2 在功能上完全覆盖它。

SSTP 值得用吗?+

只有一种情况:设备是 Windows、网络封锁 UDP、且没有其他选择。同样的伪装效果 OpenVPN over TCP 443 也能做到,而且是开源的。

参考资料

延伸阅读