OpenVPN 详解:TCP、UDP 与安全性
OpenVPN 如何建立隧道、TCP 与 UDP 为何手感不同、怎样的配置才算安全,以及连接失败时如何一步步排查。
阅读约 9 分钟更新于 2026年10月15日作者:XPASS Editorial Team

OpenVPN 是你在 VPN 应用设置里仍然能见到的最老牌的名字之一。它在二十一世纪初问世,是开源软件,被审查、部署和压力测试的时间,比大多数较新的选项都长。如果你见过以 .ovpn 结尾的文件,或者标着 TCP 和 UDP 的开关,那你已经和它打过照面了。
本文讲解 OpenVPN 在实际中如何工作:藏在一条隧道里的两个通道、TCP 或 UDP 的选择为什么会改变连接手感、对 OpenVPN 配置来说“安全”究竟指什么,以及如何读懂配置文件、排查连接不上的问题。内容只讲协议的一般原理,不说明任何具体服务支持哪些协议。想先了解整体格局,请看 什么是 VPN 协议。
OpenVPN 到底是什么
OpenVPN 既是协议,也是软件。软件可以运行在 Windows、macOS、Linux、Android、iOS 和许多路由器上。协议则是这些程序建立和使用加密隧道时遵循的规则。三个特点解释了它大部分的行为。
- 运行在用户空间。 OpenVPN 是一个普通程序,而不是操作系统网络核心的一部分。这让它便于移植和更新,但每个数据包都要在内核和程序之间往返,会损失一些速度。
- 复用 TLS。 OpenVPN 没有发明新的握手方式,而是借用已经在保护网页浏览的 TLS 机制。TLS 1.3 的规范是 RFC 8446,证书、密钥协商和会话密钥的思路在这里同样适用。
- 可配置性极高。 端口、传输方式、加密算法、认证方式和路由规则都可以调整。这种灵活性对管理员是优点,对其他人则是出错的来源。
因为建立在标准部件之上,OpenVPN 并不神秘。它做的事和其他隧道协议一样:把数据包用加密包起来,发给服务器,再由服务器转发出去。它的特色在于如何包裹,以及对外开放了多少调节项。

一条隧道里的两个通道
最有用的心智模型是:一次 OpenVPN 连接其实是同时进行的两场对话。
控制通道
控制通道负责建立连接。你点击连接后,客户端和服务器会进行一次 TLS 握手。双方各自证明身份,通常出示证书,然后协商新的密钥。如果配置使用用户名和密码,也是在这里校验。控制通道会在后台持续运行,定期更新密钥,所以被盗的密钥只有有限的使用寿命。
许多配置会在这个通道之上再加一个共享密钥,常被称为 TLS 包裹或 TLS-crypt 密钥。它让握手数据包对不知道密钥的人看起来像噪声,也让服务器能以很低的成本丢弃未经授权的连接尝试。这是加固措施,不能代替好的证书。
数据通道
数据通道承载你真正的流量。它逐个取出 IP 数据包,用控制通道协商出的密钥加密,附上认证标签以便发现篡改,然后发送出去。现代配置使用自带认证的加密算法,比如 GCM 模式的 AES,或 ChaCha20-Poly1305,它们把加密与完整性校验合并在一步里完成。
把两个通道分开有实际好处:缓慢而谨慎的身份认证很少发生,快速的逐包处理则持续运行,并使用不断更换的密钥。想进一步了解加密部分,可以看 VPN 加密是什么。
TUN 与 TAP:路由还是桥接
OpenVPN 会在你的设备上创建一个虚拟网卡,有两种类型。
| 模式 | 传输内容 | 常见用途 | 代价 |
|---|---|---|---|
| TUN | IP 数据包(第 3 层) | 几乎所有面向普通用户的 VPN、远程访问、站点互联 | 轻量,路由简单 |
| TAP | 以太网帧(第 2 层) | 让远程机器看起来在同一局域网,依赖广播发现的老旧软件 | 额外开销大,流量更多,更难扩展 |
如果你的目标是保护公共 Wi-Fi 上的流量,要用的是 TUN。TAP 适用于依赖广播发现的老软件,或需要把两个站点当作一台交换机的场景。家庭用户很少需要选它,如果有教程让你改成 TAP 来“提速”,请保持怀疑。
TCP 还是 UDP:改变使用手感的选择
这是人们最容易察觉的决定。两种模式承载的是同样的加密数据,区别在于你和服务器之间用什么传输方式。
UDP 发送数据包时不保证送达,也不保证顺序。数据包丢了,隧道本身不会重传。这没有问题,因为隧道里的流量,比如通过 TCP 加载的网页,本来就有自己的恢复机制。可靠性由一层负责,隧道增加的延迟很小。
TCP 保证按顺序送达,所以隧道会重传丢失的数据包。当你自己的流量本来也是 TCP 时,就变成两层都在为同一次丢包做恢复。连接质量差时,两层的计时器互相冲突,内层发送的数据,外层还在重试,吞吐量可能骤降。这种现象常被称作 TCP meltdown,也是信号弱时 TCP 模式感觉迟钝的原因。
| 方面 | 基于 UDP 的 OpenVPN | 基于 TCP 的 OpenVPN |
|---|---|---|
| 网络良好时的速度 | 通常更好 | 通常略低 |
| 丢包时的表现 | 平缓下降 | 可能停滞或忽快忽慢 |
| 通话与游戏的延迟 | 通常更好 | 通常更差 |
| 网络不放行 UDP 时能否使用 | 不能 | 可以 |
| 典型角色 | 默认选项 | 备用选项 |
一条实用规则
先用 UDP。如果始终连不上,或者在某个特定网络上反复断线,再试 TCP。只在该网络需要时才用 TCP,换到别处就回到 UDP。有些网络,比如某些办公室、学校和酒店,出于策略只放行一小部分流量,TCP 模式有时能在那里连上,但本文不涉及绕过网络所有者刻意设置的限制。如果某个网络不允许 VPN 流量,直接的办法是询问网络管理方,或改用手机流量等其他连接。
一个简短的场景
安娜在网络良好的共享办公空间工作,用 UDP 时视频会议在隧道里很流畅。有一天她出差,住进一家网络对 UDP 放行不稳定的民宿,VPN 连不上。她改用 TCP 后连上了,网页能打开,但视频通话时断时续。这种断续正是双层恢复造成的,所以她在那里只用 TCP 收发邮件、轻度浏览,到了下一个地方就换回 UDP。她是为每种情况选择了合适的工具,而不是认为某个设置永远更好。
对 OpenVPN 配置来说,“安全”是什么意思
人们常问 OpenVPN 安不安全,好像这是协议的“是或否”属性。诚实的回答是:协议设计稳健,经过广泛审查;实际的安全性则取决于具体连接是如何配置的。以下是成败的关键点。
- 加密算法的选择。 AES-GCM、ChaCha20-Poly1305 等自带认证的现代算法是合理的选择。为兼容而保留的旧算法,尤其是 64 位分组的算法,强度较弱,已在新版本中逐步淘汰。如果某个配置仍写着很古老的算法,说明它的维护状况令人担忧。
- 证书校验。 客户端必须校验服务器的证书和名称。如果不校验,网络上的人就可能冒充服务器。好的配置默认就会让客户端做这项检查。
- 密钥寿命。 数据密钥会定期更新,这样一把密钥泄漏,只会暴露一部分流量。
- 控制通道加固。 TLS 包裹密钥降低了被扫描和未授权握手尝试的风险。
- 软件更新。 客户端和服务器都要保持更新,因为安全修复只有安装后才有用。
- 压缩。 加密前先压缩数据,在其他协议中曾与攻击相关联,目前的建议是关闭。启用它的配置值得再看一眼。
- 凭据处理。 用户名和密码在受保护的控制通道中校验,但账号本身的安全程度,取决于密码和背后的第二重验证。
这些都不意味着使用 OpenVPN 的连接就无懈可击。隧道保护的是你的设备到服务器之间的流量,它不能阻止设备上的恶意软件、钓鱼网站或弱密码。更完整的图景请看 VPN 无法保护你的哪些方面。
读懂客户端配置
OpenVPN 客户端通常由一个以 .ovpn 结尾的文本文件驱动。你不需要自己写,但能读懂主要几行,就能知道很多信息。下面是一个有意写得很通用的示例,数值均为虚构。
client
dev tun
proto udp
remote vpn.example.net 1194
resolv-retry infinite
nobind
remote-cert-tls server
cipher AES-256-GCM
auth SHA256
verb 3
各行的含义用大白话说:
client表示这台机器主动连接服务器,而不是等待别人连进来。dev tun选择前面说的路由型虚拟网卡。proto udp选择传输方式,改成tcp就是 TCP 备用模式。remote给出服务器名称和端口。端口只是个标签,不会改变加密的工作方式。resolv-retry infinite表示网络不可用时,持续重试解析服务器名称。nobind允许客户端使用任意本地端口。remote-cert-tls server让客户端要求对方出示服务器用途的证书,是防止冒充的基本措施。cipher和auth指定数据通道的算法。verb决定日志的详细程度,排查问题时有用。
真实文件还包含证书和密钥,可能内嵌,也可能是单独的文件。请把包含凭据或密钥的 .ovpn 文件当作密码对待:不要贴到求助论坛,不再需要的副本要删除。如果服务给你的是现成的应用而不是文件,应用会替你生成这些设置,通常不应修改。若应用提供协议选项,除非客服建议,否则保持默认。

性能:MTU、MSS 与一个忙碌的核心
人们常说 OpenVPN 比新协议慢。这有真实原因,其中几项你可以施加影响。
- 用户空间处理。 每个数据包都要在内核和程序之间往返。在光纤很快但 CPU 一般的机器上,这可能成为瓶颈,而且一条隧道可能只用到一个核心。
- 额外开销。 隧道会增加包头,压缩了每个数据包里装数据的空间。如果最终的包超过路径能承载的大小,就会被分片或丢弃。探测路径所能承载的最大包的方法,在 RFC 1191 中有描述。
- MTU 不匹配。 症状很古怪:小网页能加载,大下载却卡住;或者有些网站正常,有些永远加载不完。减小隧道的包大小,或限制 TCP 段大小,通常能解决。客服人员熟悉这个设置,你在求助时说明这些症状即可。
- 距离与延迟。 无论选哪种协议,距离远的服务器都会增加延迟。Cloudflare 关于延迟的文章解释了这个概念,为什么用 VPN 后网速会变化 则覆盖了其他因素。
- 加密成本。 AES 硬件加速让 GCM 在许多手机和电脑上开销很低,没有加速的设备用 ChaCha20-Poly1305 可能表现更好。通常你不需要自己选,默认值是为兼容性选定的。
如果速度是你最关心的事,而你的应用提供了其他选项,试试另一种协议是合理的实验,WireGuard 与 OpenVPN 的比较 梳理了其中的取舍。
排查 OpenVPN 连接问题
由简入繁,一次只改一处,这样你才知道是什么起了作用。
- 先检查网络。 不开 VPN,打开一个网页。如果打不开,问题不在 VPN。
- 确认登录信息。 用户名或密码输错,是启动失败最常见的原因。请从账户页面复制,而不是重新输入。
- 检查日期和时间。 证书只在一段日期内有效。设备时钟严重错误,可能会拒绝完全正常的证书。
- 重启应用和设备。 这能清除卡住的虚拟网卡,这是 Windows 和 macOS 上的常见原因。
- 换个网络试试。 如果手机流量能用,而某个 Wi-Fi 不行,那个 Wi-Fi 很可能在过滤流量。
- 只有应用允许时才切换传输方式。 如果 UDP 在某个网络上失败,在那里试试 TCP,之后再切回来。
- 查看日志。 提到 TLS 握手失败的行,指向流量被拦截或证书有问题;提到认证失败的行,指向凭据;提到证书无效或过期的行,指向时钟或过时的配置。
- 更新应用。 旧客户端可能无法连接已经淘汰过时设置的服务器。
- 带着具体信息联系客服。 说明是哪台设备、哪个网络、日志写了什么、你已经试过什么。
帮助文章 VPN 连接不上怎么办 更详细地介绍了应用层面的修复办法。
局限与注意事项
- OpenVPN 是建立隧道的一种方式,不是隐私保证。流量离开隧道后服务商怎么处理,是信任问题,不是协议问题。
- 它的灵活性意味着可能出现糟糕的配置。除非你清楚每一行的作用,否则优先使用默认值合理的现成应用,而不是手改文件。
- 端口号不是安全功能,改端口不会让加密更强。
- TCP 模式是兼容性工具,不是升级。
- 速度取决于服务器、距离、你的设备和网络,至少和协议同等重要。
- 本文属于一般性科普,不构成法律建议,也不声称任何协议能在所有网络上使用。
小结
OpenVPN 用两个协作的通道构建加密隧道:控制通道用 TLS 验证身份并协商密钥,数据通道逐包加密。UDP 是更好的默认选择,TCP 是 UDP 连不上时的备用方案。安全的配置取决于现代加密算法、正确的证书校验、定期更新密钥以及及时更新的软件。连接失败时,依次检查网络、凭据、时钟、传输方式和日志。
常见问题
用简单的话说,OpenVPN 是什么?
OpenVPN 是一种开源的 VPN 协议和程序,在两台计算机之间建立加密隧道。它使用保护网站的同一类技术 TLS 来验证双方身份并协商密钥,然后用标准加密算法加密你的流量。
OpenVPN 该选 TCP 还是 UDP?
对多数人来说,UDP 是更好的默认选择,因为它避免了把一层可靠传输嵌套在另一层里。TCP 模式主要是 UDP 连不上时的备用方案,信号不好时往往更慢、更容易卡顿。
OpenVPN 安全吗?
OpenVPN 成熟,经过广泛审查,使用的是标准密码学。具体某次连接是否安全,取决于配置:现代加密算法、正确的证书校验和及时更新的软件,比协议名称重要得多。
TUN 和 TAP 有什么区别?
TUN 传输 IP 数据包,几乎所有面向普通用户的 VPN 都用它。TAP 传输完整的以太网帧,能让隧道像网线一样工作,但开销更大,除特殊场景外很少需要。
本文会说明 XPASS 使用哪些协议吗?
不会。本文只讲 OpenVPN 的一般原理。你的通行证可用的连接方式显示在 My Pass 页面,除非客服建议,否则使用应用的默认设置即可。
参考资料
关于作者

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

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



