黑豹VPN
黑豹VPN Logo
VPN 与加速器

深度拆解VPN客户端与服务端的完整工作过程

本文结合企业远程办公VPN接入的典型落地场景,完整拆解VPN客户端与服务端的全链路工作过程,跳过抽象的协议定义,从实际可操作的配置、校验、VPN下载排查角度梳理每个环节的运行逻辑,帮助普通用户和运维人员快速定位连接异常问题,理清加密传输过程中的隐私边界。

连接发起前的两端配置校验

用户在VPN客户端点击连接按钮之前,黑豹两端的前置配置状态会直接决定后续连接能不能正常触发。客户端侧需要提前确认本地物理网卡的公网连通性,确认预配置的VPN服务端公网地址、加密套件、预共享密钥或者客户端证书没有输入错误,很多初次配置的用户容易把预共享密钥的大小写输错,后续排查很难定位到这类低级错误。

真实画面VPN客户端与服务端工作过程

终端用户与运维人员分别完成VPN两端的连接前配置校验

VPN服务端侧的前置校验通常由运维人员提前完成,首先要确认服务器本地的VPN服务进程处于正常监听状态,对应的协议端口没有被系统防火墙或者上层的边界安全设备拦截,同时后台的用户权限列表已经将当前接入账号加入允许接入组,避免出现账号密码正确却被服务端直接拒绝的问题。

身份协商与隧道建立阶段

用户点击客户端的连接按钮之后,客户端会第一时间向预配置的服务端公网地址发送第一阶段协商报文,报文中会携带本地支持的所有加密套件列表,这个过程可以通过本地抓包工具筛选对应协议的端口确认报文发出状态,如果抓不到任何发往服务端的协商报文,大概率是本地客户端的系统权限不足,或者本地安全软件拦截了VPN进程的对外发包权限。

服务端收到协商请求之后,会先比对自身支持的加密套件列表,选中两端都兼容的最高优先级加密规则,向客户端返回协商响应报文,之后进入身份校验环节,根据预先设定的规则校验账号密码、客户端证书的合法性,很多连接失败的问题都出现在这个环节,比如客户端导入的证书过期,或者服务端的账号权限被临时回收,都会直接中断协商流程。

身份校验完全通过之后,两端会生成第一阶段的安全联盟,接着协商第二阶段的隧道传输规则,由服务端向客户端分配属于内网网段的虚拟IP地址,此时用户打开本地的网络适配器列表,就能看到新生成的VPN虚拟网卡已经获取到对应的内网IP,代表隧道的基础链路已经搭建完成。

数据封装与路由转发的实际运行逻辑

隧道搭建完成之后,操作系统不会默认把所有流量都导入VPN隧道,而是根据客户端收到的服务端推送路由规则,更新本地系统路由表。用户可以在Windows系统的命令提示符中执行route print命令,在macOS或者Linux系统中执行route -n命令,就能看到新增的指向VPN虚拟网卡的路由条目,只有目标地址匹配这些路由条目的流量,才会被送往VPN隧道处理。

客户端的VPN进程收到需要走隧道的原始内网数据包之后,会用之前协商好的加密规则把整个原始数据包完全加密,再在加密后的报文外层新增一层普通公网IP头,外层IP头的源地址是本地物理网卡的公网出口地址,目标地址是VPN服务端的公网IP,中间公网链路上的所有网络设备都只能看到外层的加密报文,无法解析内部的原始数据内容。

VPN服务端收到外层加密报文之后,先完成解密操作取出内部的原始内网数据包,确认报文的目标地址属于可访问的内网资源范围之后,把数据包转发给对应的内网服务器,内网服务器返回的响应报文会沿着反向路径,被服务端重新加密之后发回客户端,客户端解密之后再把原始响应内容交给用户本地的应用程序处理。

连接状态校验与常见故障定位思路

VPN客户端与服务端在隧道正常运行的过程中,会定时互相发送保活探测报文,确认两端的链路连通性,如果连续多次没有收到对端返回的保活响应,就会判定隧道链路异常,自动触发重连流程。用户遇到频繁断连的问题时,可以先查看客户端的连接日志,确认断连触发的原因是保活超时,优先排查两端中间的公网链路有没有波动,不要直接修改加密配置反而引入新的问题。

很多普通用户对VPN的运行存在认知误区,认为连接VPN之后所有上网流量都会走加密隧道,实际上默认配置下只有指定的内网段流量才会走VPN隧道,普通公网访问流量依然会走本地原有的运营商网关。如果需要配置全流量走隧道,需要运维人员在服务端开启全流量路由推送规则,同时配置对应的NAT转发策略,才能让所有流量都通过VPN服务端访问公网。

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

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

查看更多文章
配置入门

找到适合当前设备的指南

遇到近距离节点性能不佳相关问题,可从“对比真实业务延迟和丢包后再选择”开始阅读。城市标签不能保证物理部署位置和路由最短,需要结合具体环境判断。