OpenVPN 的 TCP 与 UDP 有什么区别?
OpenVPN 可以通过 UDP 或 TCP 传输隧道数据。本文说明两者的区别、默认用 UDP 的原因、什么时候该用 TCP,以及怎样自己动手测试。
阅读约 9 分钟更新于 2026年10月15日作者:XPASS Editorial Team

只要打开过 OpenVPN 的配置文件,或者 VPN 应用的高级设置,你大概都见过 UDP 和 TCP 二选一的选项。它看上去只是个小开关,却决定了在 Wi-Fi 信号不稳、酒店防火墙很严、视频通话开始卡顿时,隧道会怎样表现。“OpenVPN 的 TCP 和 UDP 哪个更好”这个问题有简短答案,也有更有用的详细答案。简短的答案是:UDP 更适合做默认值,TCP 更适合做备选。详细的答案在下面。
我们会看两种传输方式各自做什么、为什么 TCP 套 TCP 会拖慢速度、涉及哪些端口,以及怎样在大约十五分钟内在自己的网络上测试两种模式。隧道与加密的基础知识不在这里重复,可以参考 VPN 协议是什么 和 WireGuard 与 OpenVPN 的对比。本文只回答一个问题:当 OpenVPN 的外层从 UDP 换成 TCP,到底有什么变化。
传输层为隧道做了什么
任何 VPN 隧道都要把加密后的数据包放进互联网能够投递的“容器”里。底层互联网搬运的是 IP 数据包,在 IP 之上,常见的传输方式有两种。
UDP(用户数据报协议)发出一个包就继续往下走。它不为送达编号,不等待确认,也不会自己重发。包丢了,UDP 并不知道。
TCP(传输控制协议)建立一条可靠、有序的数据流。它给数据编号,等待确认,重发丢失的部分,并在发现拥塞时降速。包丢了,TCP 会把后面的数据全部压住,直到缺口补上。
OpenVPN 可以用其中任意一种作为加密隧道的外层。两种情况下,隧道内容受到的保护方式是一样的。从 UDP 切到 TCP,不会让密码更强,也不会更弱,改变的只是加密好的数据包怎样在你的设备和 VPN 服务器之间传送。
可以用快递来想象。UDP 像把包裹放在门口就走的快递员,某个包裹从车上掉了,没人会告诉他。TCP 像要求每件都签收的快递员,少了一件就折回去找,而且第 6 件没到之前绝不先送第 7 件。TCP 带来确定性,而确定性要用等待时间来换。

为什么隧道通常默认用 UDP
偏向 UDP 的原因,来自隧道里本来就装着什么。你通过 VPN 发送的大部分内容本身就是 TCP 流量:网页、应用接口、下载、加密浏览。这些内层连接自己就有确认、重发和拥塞控制,并且最清楚该怎样处理丢包,因为它们知道应用需要什么。
当隧道使用 UDP 时,外层丢一个包,就只是内层丢一个包。内层 TCP 发现后,重发那一小段并略微降速。问题只由一层处理,而且是最懂数据的那一层。
此外还有这些好处:
- 延迟更低、更平稳。 不需要额外等待外层的确认。这对通话、游戏和远程桌面很重要,对这些应用来说,晚到的包宁可跳过也不值得等。如果你关心这方面,VPN 能降低 ping 吗 详细讲了延迟、抖动和丢包。
- 切换网络更容易。 UDP 没有需要拆除的连接。手机从 Wi-Fi 切到移动数据时,基于 UDP 的隧道通常在短暂停顿后就能恢复。
- 开销更小。 UDP 头部很小,也不需要额外维护连接状态。
- 适合实时流量。 现代网页协议背后的 QUIC 也是建立在 UDP 之上的,原因类似(见 RFC 9000)。
当然 UDP 不是万能的。有些网络会丢弃或限制 UDP,有些防火墙只放行很短的出站端口清单。这正是 TCP 派上用场的场合。
TCP 套 TCP:叠加带来的问题
在 TCP 隧道里再跑 TCP 连接,常被称为“TCP over TCP”,这也是人们提醒慎用 OpenVPN TCP 模式的主要原因。这个问题比较微妙,下面用一个分步示例说明。
假设你在一个每 100 个包约丢 3 个的 Wi-Fi 上,通过 TCP 模式的隧道下载文件。看看外层丢了一个包时发生什么。
- 外层 TCP 发现丢包,计时器开始计时,并把之后所有外层包压住,直到丢失的包被重发。如果连接已经不稳定一阵子,这个延迟可能是几百毫秒。
- 外层在等待的时候,承载你下载的内层连接什么也收不到,它的确认包也停止回传。
- 内层连接自己的计时器超时。它认为那一段数据丢了,于是重发,并且因为以为网络拥塞而降低发送速度。
- 与此同时,外层恢复了,把压住的包放出去,随后内层重发的数据段也到了。内层于是收到重复数据,而且已经降了速。
- 如果这种情况反复出现,两层都会不断缩小窗口、叠加计时器。吞吐量可能比丢包率本身所能解释的下降得多得多,连接会卡住好几秒,然后突然冲一下。
这种现象有时被叫做“TCP 崩溃”(TCP meltdown)。在良好的连接上它很少出现,因为几乎不丢包,两层也就不会互相冲突。但在移动网络、拥挤的 Wi-Fi 和长距离链路上它会很明显。所以 OpenVPN 自己的文档把 UDP 列为推荐模式,把 TCP 当作没有其他选择时的备用方案。
要记住的是:问题并不在于 TCP 不好,而在于两套独立的恢复机制同时在解决同一个问题,却没有互相协调。
端口与网络:TCP 能帮上忙的地方
实际使用中,更多时候问题出在端口而不是性能。端口是服务使用的编号“门”。OpenVPN 官方分配的默认端口是 1194,通常与 UDP 搭配。你也会看到 OpenVPN 提供在 TCP 443 端口上,这和普通加密网页用的是同一个端口。
这为什么重要?有些网络,包括某些办公室、学校、酒店和公共热点,只允许出站连接使用很短的端口清单,通常是 80 和 443,其余都丢弃。于是 1194 端口上的 UDP 隧道可能从第一个包就失败,而 443 端口上的 TCP 隧道能通过,因为网络把它当成普通的加密浏览。
这里有两点提醒:
- 遵守你所在网络的规则。 限制端口的网络通常有原因,比如雇主的安全策略。如果你在公司或学校网络上,先问清楚是否允许使用 VPN。本文谈的是兼容性,不是绕开任何人的管控。
- 443 端口不是隐身衣。 有些检测系统不管端口号是什么,都能识别出 VPN 隧道。换端口更多是解决“在这家酒店的网络上始终连不上”这类问题,并不能让流量变得看不见。
日常来说,TCP 是用于兼容的选项。如果 UDP 在你的网络上能用,就很少有理由离开它。
逐项对比
| 项目 | UDP 模式 | TCP 模式 |
|---|---|---|
| 常见默认端口 | 1194 | 443 或 1194(取决于配置) |
| 可靠性层 | 外层没有,由内层流量处理丢包 | 外层 TCP 重发丢失的包 |
| 网络良好时的延迟 | 低 | 略高 |
| 丢包网络上的表现 | 平缓下降 | 可能卡住或忽快忽慢(TCP over TCP) |
| 切换网络 | 通常恢复很快 | 连接需要重建 |
| 通过严格的端口过滤 | 有时被拦截 | 在 443 端口上常能通过 |
| 适合 | 通话、游戏、手机、日常使用 | 阻止 UDP 的网络 |
| 加密强度 | 相同 | 相同 |
如果只看一行,请看最后一行。加密完全相同,所以安全性不是选择哪种模式的理由。
在自己的网络上测试两种模式
不要猜,直接测。大约十五分钟,就能得到你实际使用的网络上的结果。以下步骤假设你的 VPN 应用或客户端提供传输方式的设置;如果没有,或者拿不准,请保持默认值并联系客服。
- 先记录未开 VPN 时的基线。 跑一次测速,并对一个知名主机做 ping。记下下载速度、上传速度和 ping 值。
- 用默认设置连接,重复测试,记录同样三个数字,并留意加载网页或开始播放视频时有没有不同的感觉。
- 只切换传输方式(UDP 改 TCP,或反过来),并重新连接同一个位置。如果同时换了位置,对比就没有意义了。
- 重复这三项测量,再加一项:连续 ping 一整分钟,观察尖峰。在丢包的网络上用 TCP 模式,安静一段时间后你可能看到很长的延迟尖峰。
- 试一个真实任务。 在每种模式下参加一次简短的视频通话,或打开一次远程桌面。真实使用能暴露平均值掩盖的卡顿。
- 在第二个网络上再测。 比如移动数据。家里光纤上的结果可能与咖啡馆或火车上不同。
- 保存结果。 记下哪种模式在哪个网络上最好,下次就不用重复实验。
读数字时有几点提示。要比较 ping 的尖峰,而不只是平均值:延迟(latency)是数据包往返所需的时间,抖动(jitter)是这个时间的波动程度。下载测试里略快、但每隔几秒就出现尖峰的模式,用来通话反而更糟。还要记住,速度慢也可能与传输方式毫无关系。VPN 为什么慢 列出了其他常见原因,从距离遥远的服务器到拥挤的 Wi-Fi 信道。

场景:不同的人适合哪种模式
住酒店的旅行者。 莉娜入住的酒店大堂网络可以上网,但 VPN 一直停在“正在连接”。看起来 UDP 包被过滤了。切换到 443 端口的 TCP 后连接成功。视频通话不如在家里流畅,但邮件和消息都能用,这正是她的目标。如果酒店附近移动信号不错,改用移动数据也是一种选择;更完整的内容见 在酒店 Wi-Fi 上使用 VPN。
在家用光纤办公的远程工作者。 志明整天通过远程桌面工作。每多 50 毫秒的延迟,打字时都能感觉到滞后。UDP 给了他需要的低而稳的延迟,他从来没有理由去动这个设置。
校园网拥挤的学生。 上课时间,成百上千台设备共用同一个接入点,小魏的笔记本大约每 20 个包丢一个。TCP 模式让下载时断时续、忽快忽慢,UDP 的下降则平缓得多。如果校规屏蔽 UDP,她应当去问信息中心是否允许使用 VPN,而不是自己瞎试。
家用路由器稳定的一家人。 陈家在家里的手机和笔记本上使用 VPN。网络很干净,应用默认值就够用,没人觉得有什么区别。正确的决定就是什么都不改。
常见错误与局限
- 为了“更安全”改成 TCP。 加密没有变化,你得不到任何好处,还可能损失速度。
- 同时改多项设置。 一次改了传输方式、位置和应用,就说不清是哪一项造成了差别。
- 把 443 端口当隐身衣。 它在某些网络上能提高兼容性,但并不能掩盖隧道的存在。
- 忽略 MTU。 过大的数据包在某些路径上会被分片或丢弃,表现为下载大文件时卡住,而小网页正常。这与路径 MTU 发现(RFC 1191)有关,VPN 软件通常会把包缩小一点,为隧道开销留出空间。如果大文件卡住而小网页能打开,请告诉客服,不要盲目修改数值。
- 把所有问题都归咎于传输方式。 信号弱、服务器负载高、Wi-Fi 信道不好,都可能出现相同症状。在断定模式有问题之前,先按 提高 VPN 连接稳定性 排查一遍。
- 忘了这个选择只存在于提供该选项的协议中。 WireGuard 只用 UDP,没有可选项。TCP 与 UDP 的选择主要是 OpenVPN 的话题。
如果连接根本启动不了,传输方式只是众多原因之一。VPN 连接不上 里的检查清单按顺序排好了,从正确输入账号密码一直到检查设备时钟。
总结
OpenVPN 在 UDP 和 TCP 上承载的是同一种加密隧道,所以两者谁都不比对方更安全。UDP 更适合作默认值,因为它让隧道里的流量自己处理丢包,并保持较低延迟,在手机和共用 Wi-Fi 上尤其如此。TCP 模式在丢包时会遇到 TCP 套 TCP 的叠加问题,但对只允许一小批出站端口的网络来说,是有用的备选。保持默认值,一次只改一项,用真实任务来测量,并始终遵守你所用网络的规则。
常见问题
OpenVPN 用 TCP 还是 UDP 更快?
网络状况好时,UDP 通常略快,对网络变化的反应也更灵活。网络丢包较多时,TCP 模式可能明显变慢,因为隧道本身和隧道里的数据都在尝试修复同一个丢失的包。最好在自己的网络上实测,而不是照搬经验规则。
OpenVPN 走 TCP 比走 UDP 更安全吗?
不是。两种模式下隧道的加密与认证完全相同。选择只改变数据包的承载方式,以及在丢包或网络限制较多时的表现,不会改变加密强度。
为什么有些教程推荐 TCP 443 端口?
不少网络只放行与普通加密网页相同的出站端口,其他端口大多被关闭。这个端口上的 TCP 隧道可能在 UDP 连不上的地方连上。这是为了兼容你有权使用的网络,而不是绕开别人设定的规则。
VPN 应用里有这个选项时,需要改吗?
只有出现具体问题时才改,例如在某个网络上始终连不上。先保持应用默认值,一次只改一项,并记录结果。
WireGuard 需要选 TCP 还是 UDP 吗?
WireGuard 只使用 UDP,所以没有可选项。本文讲的取舍适用于 OpenVPN,以及其他能在两种传输方式上运行的设计。
参考资料
关于作者

Bob Kanokphon Thongdee
- XPASS VPN 创始人
- eSIMonline.asia 联合创始人
- 7 年以上网络营销经验
- Cojourney Visa 与 Cojourney Travel 创始人
继续阅读

VPN 安全
WireGuard 与 OpenVPN 有什么区别
WireGuard 和 OpenVPN 都能建立加密隧道,但设计、复杂度和灵活性不同。本文用通俗的方式比较,并说明该怎样选择。
阅读约 9 分钟



