L2TP、PPTP 与 SSTP:三种旧协议的现状与风险
Yalgorup 编辑部 · 更新于 2026年8月1日
核心要点
- 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 模式一样的重传叠加问题。
三者对比
| PPTP | L2TP/IPsec | SSTP | |
|---|---|---|---|
| 加密 | MPPE/RC4,认证已被攻破 | IPsec,取决于配置 | TLS |
| 端口 | TCP 1723 + GRE | UDP 1701/500/4500 | TCP 443 |
| 速度 | 快(因为几乎没有保护) | 慢(双层封装) | 中等 |
| 穿透能力 | 差(GRE 过不了 NAT) | 一般 | 好 |
| 开源 | 是 | 是 | 否 |
| 建议 | 不要用 | 有更好选择时不要用 | 仅特定场景 |
今天该用什么
这三个协议出现的年代,网络环境和威胁模型都和现在不同。它们留在系统设置里主要是为了兼容老设备。
新的部署应当在 WireGuard、OpenVPN 和 IKEv2/IPsec 之间选择。如果一家服务商在 2026 年还把 PPTP 当作卖点列出来,这本身就是一个值得警惕的信号。
常见问题
PPTP 现在还有能用的地方吗?+
只剩下一种:在完全不涉及敏感数据、只是需要改变出口 IP 的老设备上临时使用。任何涉及账号、支付、隐私的场景都不该用它。
为什么路由器里还保留着 PPTP 选项?+
兼容性遗留。老设备、老系统只支持它,厂商为了不破坏既有配置而保留,并不代表推荐。
L2TP/IPsec 和 IKEv2/IPsec 差在哪?+
加密都靠 IPsec,但 L2TP 多套了一层封装,开销更大速度更慢,且没有 MOBIKE 漫游。IKEv2 在功能上完全覆盖它。
SSTP 值得用吗?+
只有一种情况:设备是 Windows、网络封锁 UDP、且没有其他选择。同样的伪装效果 OpenVPN over TCP 443 也能做到,而且是开源的。