跳到主要内容

在设置菜单里能见到的各种 VPN 协议中,SSTP 算是个另类。它不是来自开源社区,也不是某个标准委员会打造的通用隧道,而是由微软设计、内置在 Windows 里,并且把隧道藏进了浏览器访问安全网站时所用的那种加密连接里。这种设计带来了一些实在的优点,也带来了一些独有的缺点。

本文只回答一个问题:SSTP VPN 是什么,它适不适合你想做的事?我们会看它的工作方式、擅长什么、哪里吃力、实际使用中与其他方案怎么比,以及怎样排查故障。如果“协议”这个词对你还比较陌生,可以先读VPN 协议是什么。

SSTP 的全称与来历

SSTP 即 Secure Socket Tunneling Protocol。微软随 Windows Vista SP1 和 Windows Server 2008 推出它,当时很多管理员苦恼于 VPN 流量被防火墙,以及处理不好旧式隧道协议的家用路由器拦住。微软的办法是:让 VPN 看起来像普通的安全网页流量。

结果就是一个以 Windows 为中心的协议:客户端内置于 Windows,服务端角色是 Windows Server 远程访问功能的一部分,规范由微软发布。其他平台上的支持主要来自第三方和社区软件。

SSTP 的工作方式,用白话说

一次 SSTP 连接叠加了三个大家熟悉的东西。

  1. **TCP 443 端口。**客户端向服务器与 HTTPS 相同的端口发起一个普通的 TCP 连接。
  2. **上面叠一层 TLS。**双方进行 TLS 握手,服务器用证书证明身份,建立加密通道。这和保护安全网站的是同一家族的技术,在 TLS 1.3 规范和 Cloudflare 的 HTTPS 介绍中都有说明。
  3. **TLS 通道里跑 PPP。**在这条通道里,客户端和服务器运行 PPP 会话,由它处理用户登录(用户名密码或证书),并承载你的 IP 流量。

一个巧妙的附加机制叫加密绑定(cryptographic binding),它把内层的 PPP 登录与外层的 TLS 会话绑在一起。这样所谓的中间人就无法把登录转发到另一条隧道里,因为绑定值对不上。

所以你的流量是 PPP 包在 TLS 里、TLS 包在 TCP 里。从外面看,它像一个长时间保持的 HTTPS 会话,不过数据包的节奏和服务器的行为与普通网站不同,网络管理员只要愿意,就可以识别并管理它。

SSTP 的优点

适合放行网页流量的防火墙

许多企业网络、酒店、学校和公共 Wi-Fi 热点都允许出站 HTTPS,因为日常浏览离不开它。因此使用 443 端口的协议,往往能在 UDP 隧道被拦截或处理不好的地方连上。这是一种对获批的远程访问来说的部署便利,比如公司希望员工访问办公室服务器;它不是用来绕开网络规则的手段,也不应被这样看待,管理员依然可以检查并限制它。

采用研究充分的安全机制

TLS 是被审视得最多的协议之一。使用较新的 TLS 版本、有效的服务器证书和强的密码套件时,外层的安全性就建立在成熟的基础之上。至于证书如何确立身份,可以参考参考资料里 Let's Encrypt 的介绍。

Windows 原生支持

在 Windows 上不需要额外客户端,系统自带的 VPN 设置就能连接 SSTP 服务器,对限制安装软件的公司托管笔记本很方便。微软关于在 Windows 中连接 VPN 的支持页面介绍了添加 VPN 连接的一般流程。

与 Windows 身份验证整合

已经在运行 Windows Server 的机构,可以让 SSTP 使用现有的用户账号、证书和策略,管理员不必另建一套身份系统。

对管理员而言发布相对简单

只需要 443 端口,对互联网开放它,比管理多个 UDP 端口和特殊的 NAT 设置省事。有些机构会把服务器放在已经处理 HTTPS 的反向代理或负载均衡器后面。

SSTP 的缺点

TCP 套 TCP 可能很慢

这是最广为人知的技术缺陷。隧道运行在 TCP 上,而隧道里的流量通常也是 TCP,比如网页浏览或文件传输。两层都会检测丢包并重传。当网络不稳定时,如信号弱的 Wi-Fi 或繁忙的移动网络,两层可能对同一次丢包都做出反应,造成卡顿和吞吐量骤降,有人称之为“TCP 崩溃”。在干净的有线连接上可能几乎看不出,但在糟糕的链路上,与基于 UDP 的隧道相比,差别会很明显。关于影响速度的其他因素,可参阅为什么用 VPN 后网速会变化。

基本上是 Windows 技术

其他系统也有客户端,但来自第三方,功能、更新和打磨程度都可能欠缺。与新协议相比,移动端的支持有限。如果你的设备里手机、平板、Mac 和 Windows 混用,SSTP 很少是最简单的答案。

由单一厂商主导

规范是公开的,但开发由一家公司主导,它也没有经历开放设计那样广泛的社区审计和生态成长。这并不意味着不安全,但确实意味着独立实现更少。

证书管理要靠你自己

SSTP 服务器需要一张有效的证书,证书里的名称必须与客户端所用的地址完全一致。证书过期、名称不符,或无法访问吊销服务器,是连接失败最常见的原因。

可以被识别和管理

由于 SSTP 会话的特征与正常浏览不同,使用深度包检测的管理员能够发现它并施加策略。使用 443 端口并不会让隧道隐形,它本来也不是为此设计的。

取决于服务器的健康状况

运行该角色的 Windows 服务器和任何面向互联网的系统一样需要打补丁。没有更新的远程访问服务器就是真实的攻击目标。

SSTP 与其他方案对比

特性 SSTP 基于 TCP 的 OpenVPN WireGuard IKEv2/IPsec
传输层 TCP TCP 或 UDP UDP UDP
常见端口 443 可配置,常为 443 或 1194 可配置 500 和 4500
Windows 内置 是 否,需客户端 需客户端 是
其他系统内置 通常没有 没有 越来越多通过应用 通常有
应对网络切换 较差 一般 好 好
在丢包链路上的表现 较弱 用 TCP 时较弱 强 强
需要服务器证书 是 是(通常) 否,使用密钥 是(通常)

想更仔细地了解两种开放方案,可以看WireGuard 与 OpenVPN。大局上说,SSTP 是用原始效率和跨平台能力,换来了部署简单和 Windows 原生支持。

谁仍然可以考虑 SSTP

下面是几个比较现实的场景。

**有 Windows 服务器的小办公室。**一家有五台 Windows 笔记本的会计事务所,希望员工在家也能打开共享文件夹。管理员本来就在运行 Windows Server,掌控每一台电脑,想要一个无需额外安装软件的协议。SSTP 是合理的选择。

**使用公司 Windows 电脑出差的顾问。**顾问带着公司配发的笔记本,在客户现场和酒店之间来回。IT 部门配置了 SSTP 连接,能用是因为公司有意允许。如果某个网络拦住了它,顾问应该联系 IT,而不是设法绕开限制。

**设备混杂的家庭。**家里有 iPhone、Android 平板、Mac 和 Windows 电脑,想要一套简单的方案。SSTP 会让其中大多数设备的客户端选择变得别扭,用主流应用要容易得多。

**自己搭服务器的爱好者。**为学习而运行 Windows 服务器的人,可以用 SSTP 来试验证书和 TLS。但作为长期的家庭方案,更轻量的开放协议往往更好维护。

排查常见的 SSTP 问题

SSTP 的大多数故障来自证书或网络路径,请按顺序排查。

  1. **先确认网络正常。**在不开 VPN 的情况下打开一个网站,排除普遍性断网。
  2. **核对服务器名称。**输入的名称必须与证书一致。证书签给主机名,你却填了 IP 地址,就会出现名称不符的错误。
  3. **查日期和时间。**时钟错误会让有效证书看起来已过期或尚未生效。
  4. **看证书错误代码。**在 Windows 中,以 0x800B 开头的代码多与证书有关。例如 0x800B0109 通常表示不信任签发机构,0x800B010F 表示名称不匹配,0x800B0101 表示证书不在有效期内。
  5. **检查吊销信息的访问。**Windows 可能会尝试确认证书未被吊销。如果无法访问吊销服务器,连接可能以 0x80092013 之类的错误失败。
  6. **换个网络测试。**如果别处能用,第一个网络可能过滤了这个连接。
  7. **检查 TLS 设置。**老旧服务器可能只提供过时的 TLS 版本,现代客户端会拒绝。升级服务器才是正确的修复。
  8. **检查服务器本身。**确认远程访问角色正在运行,证书绑定到了正确的监听端口,防火墙放行 443 端口。

帮助中心的Windows VPN 常见错误涵盖了 809、789、691 这类数字代码,其中的 Windows 设置指南则介绍了使用应用时的正常流程。

给管理员的简短清单

如果你运行 SSTP 服务器,以下习惯可以避免大多数事故。

  • 使用受信任机构签发、且名称与客户端实际使用的主机名完全一致的证书。
  • 在证书到期前至少一个月设置日历提醒。
  • 保持服务器补丁齐全,并限制管理访问。
  • 使用较新的 TLS 版本,停用旧版本。
  • 要求使用个人账号和强密码,最好再加第二重验证。
  • 监控失败的登录。
  • 记录配置,并每隔几个月用一台全新设备测试一次。
  • 想好当设备需求变化时如何迁移。

常见误解

**“SSTP 用 443 端口,所以是隐形的。”**乍看像 HTTPS,但管理员可以识别并管理它。

**“用网页端口所以最快。”**端口与速度无关。TCP 套 TCP 的设计在差的网络上通常反而更慢。

**“什么平台都能用。”**原生支持仅限 Windows,其他平台依赖第三方工具。

**“证书有效就代表运营方可信。”**证书只证明你连到的是证书上写明的那台服务器,并不能证明谁在运营它,也不能证明他们怎样处理你的流量。

总结

SSTP VPN 把 PPP 会话装进 TCP 443 端口上的 TLS 连接,适合以 Windows 为主的网络和放行网页流量的防火墙。它的优点是 Windows 原生支持、成熟的 TLS 安全性和简单的部署;缺点是 TCP 套 TCP 造成的减速、Windows 之外支持有限、依赖单一厂商,以及需要仔细管理证书。对于某些有人管理的 Windows 环境,它仍然是合理的选择,但面对混合设备和日常使用,更便携的协议或现成的应用通常更省事。

如果你想要一个替你处理连接细节的应用,可以到价格页面看看各种通行证。

常见问题

SSTP 是什么的缩写?

SSTP 是 Secure Socket Tunneling Protocol(安全套接字隧道协议)的缩写。它把 PPP 会话装进 HTTPS 连接里,这种连接受 TLS 保护,和安全网站所用的通道相同。

SSTP 只能在 Windows 上用吗?

它由微软设计,并内置于 Windows。其他系统只能通过第三方或社区客户端使用,质量与支持参差不齐,所以它主要是个以 Windows 为中心的选择。

为什么 SSTP 使用 443 端口?

443 是 HTTPS 的标准端口,办公室和家庭的普通防火墙通常会放行,所以 SSTP 很容易部署在有管理员的网络里。不过管理员如果愿意,仍然可以识别并控制它。

SSTP 比其他协议慢吗?

有可能,在不稳定的网络上尤其如此。它运行在 TCP 之上,把一个 TCP 会话装进另一个里面,一旦丢包就可能出现卡顿。在良好的网络上,差别可能很小。

SSTP 安全吗?

它依赖研究充分的 TLS,因此配置正确、证书有效的服务器被认为是可靠的。实际风险多来自失误,比如证书过期或名称不符、服务器设置偏弱,以及 Windows 服务器没有打补丁。

关于作者

Bob Kanokphon Thongdee,XPASS VPN 创始人

Bob Kanokphon Thongdee

  • XPASS VPN 创始人
  • eSIMonline.asia 联合创始人
  • 7 年以上网络营销经验
  • Cojourney Visa 与 Cojourney Travel 创始人

短途出行或忙碌的一个月,需要 VPN?

XPASS 提供按天数计算的预付通行证。一次付款,不会自动续费。

查看通行证

继续阅读

VPN 基础

什么是 VPN 协议?

VPN 协议规定了你的设备与 VPN 服务器如何连接并保护流量。本文用通俗的语言讲清楚它的含义和主要取舍。

阅读约 9 分钟

VPN 安全

WireGuard 与 OpenVPN 有什么区别

WireGuard 和 OpenVPN 都能建立加密隧道,但设计、复杂度和灵活性不同。本文用通俗的方式比较,并说明该怎样选择。

阅读约 9 分钟

VPN 基础

为什么使用 VPN 后网速会变化

使用 VPN 会给网络路径增加距离、加密和另一段网络,所以速度常常会变化。本文解释原因、正确的测量方法,以及感觉变慢时可以尝试的做法。

阅读约 9 分钟

故障排除

如何修复常见的 Windows VPN 错误(809、789、691)

分步讲解最常见的 Windows VPN 错误代码:含义、各自常见的原因,以及最稳妥的优先尝试方法。

阅读约 7 分钟

设备指南

如何在 Windows 上设置 VPN

分步说明:下载并安装 Windows 版 VPNclient,处理 Windows 安全提示,用 My Pass 上的信息登录并连接。

阅读约 7 分钟