SSTP是基于HTTPS隧道的VPN实现,它把VPN的控制报文和数据报文全部封装在标准的HTTPS协议流量里走443端口传输,和普通网页浏览的加密流量外观几乎没有区别,最早是微软推出的适配Windows生态的VPN方案,现在也已经被多数主流桌面操作系统的第三方客户端支持。
核心封装逻辑
它和传统IPsec、PPTP这类VPN的核心区别,就是没有使用专属端口或者非标准的协议报文,不会被常规防火墙的深度包检测直接识别拦截。中间的网络设备只会把它当成普通的HTTPS加密网页流量处理,不会触发预设的VPN流量拦截规则。
它的封装分为两个独立的层级,外层是标准的TCP 443端口连接,完成常规的TLS握手之后,内层再承载PPP协议的报文,所有用户的业务数据都会被二次封装之后塞进HTTPS的请求体里传输,两层加密互相独立,不会暴露内层的VPN传输特征。
典型连接建立过程
我们可以用一个常见的办公场景串起整个流程:你在部署了严格流量管控的企业内网里,想要连接家里搭建的SSTP VPN服务器,访问存放在家中NAS上的私人工作资料。

SSTP VPN在严格管控的企业网络中通过HTTPS隧道完成加密传输的链路示意
你的本地客户端首先会和SSTP服务器的443端口发起普通的HTTPS连接,先完成常规的TLS证书校验,火箭代理确认服务器身份没有被篡改,这一步和你打开任意一个HTTPS网站的握手过程完全一致,企业防火墙看不到任何VPN相关的特征标识。
外层TLS握手完成之后,客户端才会在已经建立好的HTTPS隧道里,发起SSTP专属的控制协商请求,完成链路参数协商之后,再启动PPP的身份认证流程,输入提前配置好的VPN账号密码,通过校验之后客户端就会被分配到VPN内网的专属IP地址。
整个连接建立完成之后,所有你访问家中NAS的流量都会被封装成HTTPS报文传输,企业的网络管理员就算做全量流量审计,火箭代理VPN也只能看到你和一个外部的443端口服务器有加密HTTPS通信,完全无法识别里面承载的是VPN业务数据。
适用边界与固有局限
它最适配的场景就是存在严格防火墙管控的公共网络或者企业内网环境,其他VPN协议都被拦截的时候,SSTP往往可以借助几乎所有网络环境都默认开放的443端口正常穿透,不需要网络管理员额外开放特殊端口的访问权限。
它的性能短板也非常明显,因为外层传输走的是TCP协议,一旦公网链路出现丢包,外层TCP的重传机制和内层VPN业务的重传机制会叠加触发,反而会放大网络延迟,在高丢包的移动网络环境下,传输效率会比基于UDP的VPN方案差很多。
另外它的运行完全依赖正常的HTTPS握手流程,如果中间网络部署了SSL中间人审计设备,替换了服务器的TLS证书,客户端没有提前信任中间人证书的话,连接就会直接校验失败,无法正常建立隧道。



