VPN 基础

OpenVPNTCP模式运行需要满足哪些网络环境要求


OpenVPNTCP模式运行需要满足哪些网络环境要求(LVCHA)

不少用户在把OpenVPN从默认UDP模式切换到TCP模式时,经常遇到明明配置参数完全照搬之前的可用规则,却始终无法建立连接、或者连上后频繁断连的问题,这类故障绝大多数都不是配置文件写错,而是底层网络环境没有满足OpenVPN TCP模式的专属运行要求。本文从故障排查的实操角度出发,逐项梳理OpenVPN TCP模式:网络环境要求的核心校验项,帮你快速定位连接异常的根因。

公网端口的双向连通性校验

OpenVPN TCP模式和UDP模式最基础的差异,就是它需要依托标准TCP三次握手流程完成初始连接建立,这就要求服务端侧监听的对应TCP端口,不能被服务器本地防火墙、云服务商安全组规则拦截入方向的TCP请求。很多用户此前长期使用UDP模式,已经放行了对应端口的UDP规则,切换到TCP模式后忘记修改防火墙协议匹配规则,直接导致所有客户端的连接请求刚抵达服务端就被丢弃。

完成服务端侧的规则排查后,还要从客户端侧主动发起TCP端口探测,Windows系统可以使用tcping工具、Linux和macOS系统可以使用nc命令测试对应端口的连通性,预期结果是能正常完成TCP握手,不会出现连接被拒绝或者超时无响应的提示。如果探测失败,还要排查中间接入运营商有没有封禁该端口,部分运营商会对非网页服务的非常规TCP端口做流量拦截,你可以尝试更换为常用的HTTPS服务端口测试,注意涉及公网服务端口使用时要符合当地的网络合规要求。

网络设备:OpenVPN TCP模式:网

运维人员正在逐项校验OpenVPN TCP模式所需的公网端口双向连通性规则

中间网络路径的TCP协议兼容性检查

很多用户会遇到端口探测完全正常,但OpenVPN客户端一启动就反复重连无法完成握手的情况,这类问题大多出在客户端和服务端之间的中间网络路径上。部分公司内网的流量审计网关、校园网的管控设备,会对不属于常规HTTP、HTTPS的陌生TCP长连接做超时切断,梯子或者直接篡改TCP报文的MSS数值,导致OpenVPN封装后的数据包出现分片异常,无法正常传递到对端。

遇到这类场景时,可以先在OpenVPN客户端配置里开启TCP MSS钳制功能,调低MSS参数的默认阈值,之后再尝试发起连接,如果连接能正常建立,就说明当前中间网络路径存在报文分片拦截规则,需要调整参数适配当前链路的MTU值。

还要注意避免嵌套TCP代理的运行环境,如果客户端本身已经接入了其他HTTP代理、Socks5代理等基于TCP封装的代理服务,再启动OpenVPN TCP模式就会形成两层TCP封装的嵌套结构,很容易触发重传风暴,导致连接延迟飙升甚至完全断连,这类嵌套场景本身就不属于OpenVPN TCP模式的推荐运行环境,需要先退出其他代理服务再做测试。

两端设备的TCP协议栈配置适配

OpenVPN TCP模式运行时,服务端和客户端操作系统本身的TCP协议栈自定义规则不能和服务运行需求产生冲突。部分用户为了优化服务器抗DDoS性能,手动开启了过强的TCP SYN Cookie限制,或是把TCP最大半连接数调得极低,多客户端同时接入时就会直接拒绝新的OpenVPN连接请求,导致部分用户能连上部分用户完全连不上的异常情况。

还有部分家用路由器、小型办公网关的NAT规则里,默认设置了很短的TCP端口会话老化时间,长时间没有数据传输的OpenVPN TCP连接会被网关直接回收会话资源,导致连接静默一段时间后就自动断连,你可以在网关配置里把对应端口的TCP会话老化时间调长,或是在OpenVPN配置里开启保活心跳机制,定期发送小数据包维持会话活跃,避免被网关误回收。

NAT端口映射场景的路由规则要求

很多家庭、小型团队的OpenVPN服务端部署在内网环境中,通过网关端口映射把服务暴露到公网,这时候要注意端口映射规则必须完整匹配TCP协议的流量,不少用户之前配置的是UDP协议的端口映射,切换到TCP模式后忘记修改映射的协议类型,导致所有公网发来的TCP请求抵达网关后就直接被丢弃,完全无法转发到内网的OpenVPN服务端。

还要注意规避路由递归环路问题,如果你配置了让所有客户端流量都走OpenVPN虚拟网卡转发的规则,一定要额外添加一条静态路由,把OpenVPN服务端的公网IP的路由指向客户端物理网卡的原始网关,避免OpenVPN本身的TCP连接请求也被导向虚拟网卡,LVCHA出现请求永远无法抵达公网服务端的死循环。

最后还要注意一类常见的使用误区,很多用户以为只要设备能正常访问网页就能运行OpenVPN TCP模式,实际上部分公共网络比如酒店、机场的强制网页认证网络,在你没有完成网页认证之前,所有非浏览器发起的TCP连接都会被重定向到认证页面,这类环境下也无法正常建立OpenVPN TCP连接,你需要先完成网页认证之后再尝试发起VPN连接,不要盲目反复重连触发网络侧的临时限流规则。

Wi-Fi 与路由器编辑组 | LVCHAVPN
Wi-Fi 与路由器编辑组
内容编辑

检查无线信号、设备摆放与有线连接,逐步定位家庭网络瓶颈。

查看更多文章
配置入门

从一个连接问题开始

遇到连续丢包样本分析相关问题,可从“记录连续窗口并比较实际应用统计”开始阅读。单个失败包不足以判断整条线路长期不可用,需要结合具体环境判断。