网络加速

一文详解SSTPVPN连接建立过程的全流程原理


一文详解SSTPVPN连接建立过程的全流程原理

这篇文章从Windows原生支持的SSTP VPN实际企业部署场景出发,拆解SSTP VPN:连接建立过程的每一步交互逻辑,覆盖普通IT运维人员配置、黑石排查故障时会接触到的实际环节,所有验证步骤都可以在标准Windows服务器和客户端环境下复现,不涉及无依据的性能承诺。

SSTP VPN连接建立前的配置前置校验

很多新手运维误以为SSTP只要开放443端口就能正常运行,实际上连接发起前客户端会先完成本地配置项的校验,这个环节不属于TCP握手流程,却会直接导致后续连接请求提前终止。

首先客户端会读取本地保存的SSTP VPN配置文件,确认目标服务器的443端口访问地址、预存的根证书信任链、认证方式是否和预设要求匹配,比如如果管理员之前选了基于证书认证,客户端本地没有导入对应的服务器证书根节点,这一步就会直接终止连接请求。

运维操作SSTPVPN连接建立过程配置

IT运维人员在Windows客户端上核查SSTP VPN本地配置项,完成连接发起前的前置校验

这个环节的验证方式很简单,在Windows客户端的网络适配器列表里右键对应的SSTP VPN属性,切换到安全标签页,就能看到当前生效的所有前置校验规则,和服务器端RRAS配置的对应项做比对就能快速定位不匹配的问题。

HTTPS层级的握手与SSL协商阶段

完成本地校验之后,SSTP VPN:连接建立过程就进入了和普通HTTPS请求几乎一致的外层交互,客户端首先向服务器的443端口发起标准TCP三次握手,建立基础的TCP通信通道。

TCP通道打通之后,客户端和服务器就会开始交换SSL/TLS握手信息,验证服务器返回的SSL证书是否在本地信任列表内,协商双方都支持的加密套件,生成后续会话使用的对称加密密钥,这个阶段和普通访问HTTPS网站的流程完全一致,所以大部分企业的防火墙、Web代理都不会拦截这部分流量。

这个阶段的验证可以直接用浏览器完成,你只需要在客户端打开任意浏览器,输入SSTP服务器的域名加443端口,如果浏览器没有弹出证书不受信的警告,就说明SSL协商阶段的前置条件已经满足,后续如果连接失败问题就出在SSTP协议本身的环节。

SSTP控制报文交互与PPP参数协商

当SSL加密通道成功建立之后,科学上网客户端会向服务器发送第一个SSTP控制报文,类型为SSTP_MSG_CALL_CONNECT_REQUEST,报文中会携带客户端支持的PPP认证协议列表、加密算法支持清单。

服务器收到这个请求之后,会校验自身的RRAS配置是否允许SSTP协议接入,对比客户端发来的能力清单,返回对应的SSTP_MSG_CALL_CONNECT_ACK报文,告知客户端后续PPP协商使用的参数,这个环节如果服务器配置了限制接入客户端的版本,也会直接返回拒绝报文终止连接。

这个阶段的故障排查可以在服务器端的事件查看器里定位,依次展开应用程序和服务日志>Microsoft>Windows>RrasSstp,就能看到每一条SSTP控制报文的交互记录,明确是哪一方主动终止了协商流程。

PPP认证与网络参数下发阶段

完成SSTP控制层的协商之后,双方就会在加密通道内启动标准PPP认证流程,黑石客户端提交自己的用户名、密码或者硬件证书信息,服务器端的域控或者RADIUS服务会校验身份合法性。

身份校验通过之后,服务器会向客户端下发分配的内网IP地址、DNS服务器地址、路由表规则,完成所有网络层的配置之后,黑石SSTP VPN:连接建立过程就全部走完了,客户端此时就能正常访问服务器侧的内网资源。

很多常见的误区是把SSTP的连接失败全部归因为端口拦截,实际上如果前面的HTTPS访问正常,浏览器打开服务器443端口没有证书报错,连接还是失败的话,大概率是PPP认证阶段的账号权限、地址池耗尽这类问题,不需要反复去调整防火墙规则。

远程办公编辑组
远程办公编辑组
内容编辑

围绕办公网络、视频会议和远程访问,说明连接准备与常见排查步骤。

查看更多文章
连接指南

找到适合当前设备的指南

遇到现场替换设备做对照相关问题,可从“保持网络和目标相同,记录必要配置差异”开始阅读。不同设备成功不能自动说明原设备硬件损坏,需要结合具体环境判断。