VPN 与加速器

OpenVPNTCP模式部署前必做的核心准备工作清单


OpenVPNTCP模式部署前必做的核心准备工作清单

很多运维人员部署OpenVPN时习惯直接用UDP模式,遇到运营商封禁UDP端口、跨运营商链路丢包严重的场景才临时切换到TCP模式,往往因为前期准备工作缺位,出现连接频繁断连、带宽利用率异常偏低、和现有业务端口冲突等各类问题。这份OpenVPN TCP模式部署前的准备清单,覆盖从底层网络到客户端适配的全环节校验项,帮你避开绝大多数部署后才会暴露的隐性问题。

底层网络端口与链路预校验

首先要确认OpenVPN TCP模式计划使用的端口没有被服务器端的安全组、系统防火墙提前封禁,多数云服务商默认入站规则仅放行22、80、443这类常用端口,自定义的TCP端口如果没提前添加对应放行规则,部署完成后客户端根本无法发起连接。

接下来要做链路的TCP透传验证,不要直接启动OpenVPN服务测试,绿茶先在服务器端用nc命令监听指定端口,再从不同网络环境的客户端机器用telnet或者nc发起连接,确认中间经过的运营商、企业内网防火墙没有对目标TCP端口做会话超时截断。不少企业内网的TCP空闲会话超过固定阈值就会被强制断开,后续要调整OpenVPN的keepalive参数适配这个规则。

网络设备:OpenVPN TCP模式:部

运维人员正在逐一核验端口放行规则、测试TCP链路连通性,完成OpenVPN TCP部署前的核心准备工作

这里要注意常见误区,不要默认选择80或者443端口就万事大吉,很多运营商会对80端口做深度HTTP内容检测,非HTTP的TCP封装流量会被限流或者随机丢包;如果选443端口,还要提前确认该端口没有被Nginx、Apache这类HTTPS服务占用,后续如果要实现同端口复用HTTPS和OpenVPN服务,还要提前配置TCP多路复用的相关规则,避免端口冲突导致OpenVPN进程启动失败。

服务器端TCP栈参数适配调整

OpenVPN TCP模式本身是在公网TCP协议之上做二次隧道封装,如果服务器默认的TCP栈参数没有做适配调整,很容易出现嵌套TCP的重传风暴问题:外层公网TCP丢包触发重传,内层隧道里的TCP流量也同时触发重传,双向叠加之后带宽利用率反而会比UDP模式更低。

部署前要先确认服务器的tcp_mtu_probing参数已经开启,同时调整tcp_syn_retries、tcp_fin_timeout这类参数,减少无效的TCP会话占用系统资源,绿茶加速器这些参数调整不需要重启服务器,临时生效之后可以写入sysctl配置文件永久留存。

还要提前检查服务器的文件描述符上限,TCP模式下每一个客户端连接都会占用一个独立的TCP套接字,默认的文件描述符上限如果低于预期的并发连接数,后续客户端连接到一定数量之后就会出现新连接被直接拒绝的问题,提前把这个阈值调整到高于预估并发量的1.5倍以上即可。

证书与路由规则前置梳理

OpenVPN TCP模式和UDP模式的证书体系本身是兼容的,但部署前要确认你生成的证书没有绑定UDP专属的扩展配置,不需要重新生成全套CA证书,只需要在后续配置文件里把proto参数从udp改成tcp-server即可,不过要提前确认所有客户端证书的有效期,避免部署完成后没过多久证书过期导致全体客户端断连。

提前梳理要推送给客户端的路由规则,TCP模式下的隧道有效MTU比UDP模式要小,如果你之前用UDP模式配置了全流量隧道,部署TCP模式之前要提前把隧道内的MSS钳制规则准备好,避免客户端访问部分网站的时候出现大报文丢包、页面加载不全的问题。

如果是在已有内网的网关侧部署OpenVPN TCP服务,还要提前确认内网的反向路由是通的,不要出现VPN客户端接入之后访问内网服务器,内网服务器的回包没有走VPN网关,直接从其他出口返回的不对称路由问题,这类问题排查起来非常耗时,部署前用traceroute验证客户端网段到内网业务服务器的往返路径即可提前规避。

客户端侧兼容性预验证

部署前先找2到3台不同网络环境的测试客户端,分别放在家庭宽带、企业内网、移动数据网络下做预连接测试,确认不同网络环境下的NAT设备不会对OpenVPN的TCP长连接做特殊拦截,部分公共WiFi网络会禁止非HTTP代理的长连接,提前测试可以提前调整端口适配这类场景。

还要提前确认不同系统的客户端配置文件适配,Windows、macOS、移动端的官方OpenVPN客户端对TCP模式的参数支持没有差异,但部分第三方改版的OpenVPN客户端会默认强制走UDP模式,提前用官方客户端做测试,避免后续用户拿到配置文件之后无法正常导入连接。

所有准备项全部验证完成之后,再启动OpenVPN TCP服务做小范围灰度测试,不要直接上线给全量用户使用,很多隐性的网络问题只有在并发连接数上来之后才会暴露,提前留好观测窗口,确认没有异常之后再逐步放量。

网络加速编辑组
从延迟、抖动和丢包入手,分析不同网络环境下的连接体验。
查看更多文章
配置入门

找到适合当前设备的指南

遇到视频会议共享屏幕相关问题,可从“分别验证语音、视频和共享功能”开始阅读。网页版会议可用不一定代表桌面客户端设置相同,需要结合具体环境判断。