云帆加速器
云帆加速器 Logo
VPN 与加速器

基于TLS的VPN网络连接核心运行原理解析

很多用户日常接触的基于TLS的VPN,和传统IPsec、PPTP类VPN的运行逻辑完全不同,它默认走通用的443端口传输,很多场景下可以绕过常规的边界防火墙拦截,不少使用者只知道这类工具可以建立远程加密连接,却不清楚底层的运行逻辑,配置时很容易出现各种无意义的报错,本文从核心运行原理、配置前提到故障排查逐层拆解,帮使用者理清整个连接链路的完整逻辑。

加密传输链路基于TLS的VPN连接原理

可视化展示基于TLS的VPN客户端与服务端之间的分层加密传输链路运行过程

基于TLS的VPN核心连接链路的底层运行逻辑

首先要明确,这类VPN的连接起点完全复用了标准HTTPS的TLS握手流程,不会像传统VPN那样使用自定义的非标准传输端口,初始阶段客户端会先和服务端的443端口建立普通的TLS握手,完成证书校验、云帆会话密钥协商的全流程,这个阶段的所有流量和普通用户打开浏览器访问HTTPS网站的流量特征完全一致,常规的浅层深度包检测很难直接识别出这是VPN连接。

完成外层TLS握手之后,客户端和服务端会在已经协商好的加密TLS隧道内部,再封装一层自定义的VPN私有协议报文,这个报文会承载用户后续要传输的所有内网访问、公网访问的流量,相当于在已经加密的HTTPS管道里,再套了一层独立的虚拟数据通道,外层的网络设备只能看到两端在传输HTTPS加密流,完全无法解析内部承载的VPN业务数据。

部署与配置的前置必要条件

很多用户配置这类VPN的时候经常连不上,首先要排查的就是基础的前置条件有没有满足,首先服务端必须配置合法的、受客户端信任的CA签发的TLS证书,不能随意使用自签名证书,否则客户端在初始TLS握手阶段就会直接校验失败,梯子软件直接中断连接流程,这也是很多新手最容易踩的第一个坑。

其次客户端侧的本地网络不能拦截443端口的出站流量,也不能部署会全局篡改TLS证书的中间人代理软件,很多企业内网部署的流量审计系统会替换所有HTTPS流量的根证书,这类篡改会直接导致基于TLS的VPN的证书校验失败,根本无法完成初始握手流程。

连接异常的常规故障定位步骤

如果出现连接超时的情况,第一步可以先在客户端侧用浏览器直接访问VPN服务端的对外域名,看看能不能正常加载服务端的TLS证书页面,如果浏览器提示证书风险或者完全打不开,说明基础的网络连通性或者证书配置出了问题,和VPN本身的客户端程序配置无关。

如果浏览器可以正常访问服务端的443端口,但是VPN客户端始终卡在握手阶段,这时候可以检查客户端的系统时间是否和标准时间同步,TLS协议本身对系统时间的偏差容忍度很低,时间偏差过大会直接判定证书失效,导致握手流程中断。

如果握手已经完成,但是连接成功之后完全无法访问任何内网资源,这时候要检查客户端的虚拟网卡是否正常获取到了服务端分配的内网IP地址,很多时候是客户端本地的防火墙规则拦截了虚拟网卡的转发流量,导致封装在TLS内部的VPN报文无法正常收发。

常见的使用认知误区

很多用户误以为基于TLS的VPN完全无法被网络管控设备识别,实际上现在的高级流量分析系统可以通过长时间的流量行为特征,比如固定的传输时长、固定的报文大小分布,识别出这类非浏览器产生的TLS流量,云帆并不是完全无法被感知。

还有不少用户觉得这类VPN不需要做额外的权限管控,实际上因为它走的是标准HTTPS端口,一旦服务端被未授权人员接入,很容易绕过企业的原有网络边界防火墙,直接访问内部的业务系统,部署的时候必须配套严格的动态身份校验规则,不能只靠证书做唯一的身份验证。

整体来看,基于TLS的VPN的连接原理本质上是对成熟HTTPS安全体系的复用,梯子软件只要理清了从TLS握手到内层隧道封装的全流程逻辑,大部分连接故障都可以通过分层排查的方式快速定位,不需要依赖复杂的专业调试工具。

连接排障编辑组
连接排障编辑组
内容编辑

按设备、网络、客户端和服务端逐层检查,让故障定位更有条理。

查看更多文章
配置入门

从一个连接问题开始

遇到高峰期节点性能变化相关问题,可从“保持设备和目标一致做多时段记录”开始阅读。只在清晨测试不足以判断晚间体验,需要结合具体环境判断。