TURN(Traversal Using Relays around NAT,即“使用中继绕开 NAT 的穿越”)是一种协议,当两个端点无法通过公共互联网直接建立连接时,它能让实时通信继续工作。通俗地讲,TURN 提供了一种中继服务:通信双方不再直接将媒体流或数据发给对方,而是各自将流量发往一个 TURN 服务器,由服务器把流量转发给另一方。
这种中继行为在现代 IP 通信中非常重要,因为很多网络都处于 NAT 设备、防火墙或限制性路由策略之后。在网络条件友好的环境下,直接连接可能仍能建立。但在更严苛的环境中,应用需要一条可预测、可控制、并且与实际企业网络和运营商网络兼容的回退路径。TURN 正是扮演这一角色,并且广泛地与 WebRTC、浏览器通话、交互式音视频以及其他形式的实时通信关联在一起。
为什么需要 TURN
端到端直接连接为何常常失败
理论上,点对点通信听起来很简单:两台设备互相发现、交换地址,然后开始发送流量。然而现实中,NAT 会将本地私有地址映射成对外公网地址,而许多防火墙允许向外发起的会话,却会阻挡未经请求的入向流量。这就意味着,设备自以为拥有的地址,往往并不是外部世界真正能使用的地址。
在 NAT 情形较轻的场景下,借助其他穿越技术仍然可以建立直达路径。但有些网络类型要“不配合”得多。对称 NAT 行为、严格的防火墙规则、企业安全策略、酒店或校园网络、移动运营商环境等,都会让直接媒体传输变得不可靠甚至完全不可能。这时,中继往往就成了唯一值得信赖的选择。
因此,TURN 不仅仅是一种便利功能。它是一层可靠性保障,防止因为网络路径受限而导致通话、会议、屏幕共享会话以及基于浏览器的对话失败。

当无法跨越 NAT 或防火墙建立直接端到端连接时,TURN 提供中继路径。
与 STUN 和 ICE 相比,TURN 的角色定位
TURN 经常与 STUN 和 ICE 一起被提及,三者相互关联但并非同一事物。STUN 通常用来发现设备在公网上的地址映射。ICE 是一个更广泛的连接框架,负责收集可能的路径、测试它们,并选择最佳者。TURN 则是这个更大决策过程中的中继选项。
换句话说,TURN 通常不是应用首选的路径。直连路径往往更高效。但是当 ICE 判定主机候选和服务器反射候选不够用时,从 TURN 服务器获得的中继候选就能让会话继续进行。这就是为什么 TURN 常常被描述为保护通话接通和会话可靠性的回退机制。
在许多实际部署中,TURN 区分了“尽力而为”的连接与一种能在家庭、企业、园区、移动网络以及受控安全环境下稳定工作的通信服务。
TURN 的工作原理
步骤 1:客户端在 TURN 服务器上创建分配(Allocation)
TURN 的基本工作流程始于客户端联系 TURN 服务器并请求一个分配。一旦分配创建成功,服务器就会为该客户端预留中继资源,并提供一个中继地址供其他对等端使用。TURN 的一个实用特性是,客户端可以通过单一中继地址与多个对等端通信,这简化了网络侧对会话的维护方式。
这一阶段由客户端控制,而非远端对等端。客户端向 TURN 服务器进行身份验证、建立分配,并在会话持续期间保持该分配处于活动状态。从实际部署角度看,这意味着应用或平台运营商能够以可控方式管理中继策略、凭据、服务器放置以及容量规划,而不是依赖不可预测的网络行为。
由于中继资源会消耗服务器的带宽和处理能力,TURN 通常被当作基础设施服务来运营,而不是附带的小工具。部署浏览器通信、云呼叫或大型实时平台的组织,通常会根据预期的并发会话数和流量特征仔细规划 TURN 的容量。
步骤 2:权限和通道绑定控制中继路径
TURN 并不会像一个完全开放的数据包转发器那样工作。创建分配之后,客户端会授权与特定对等端之间的通信。这通过权限(Permissions)以及可选的通道绑定(Channel Bindings)来完成。权限定义了哪些对等端地址被允许通过该分配交换流量。通道绑定则可以针对进行中的流量优化客户端与中继之间的数据包处理。
这种设计有助于 TURN 保持结构化和安全性。服务器不会允许任意的转发,而是在一个已定义的会话上下文中工作。这在生产环境中非常重要,因为中继基础设施位于公共互联网上,必须防范滥用、欺骗和不受控的资源消耗。
从运维角度来看,这些控制步骤对大多数最终用户是不可见的。它们发生在应用程序、浏览器栈、通信客户端或媒体引擎的后台。用户只注意到结果:即使网络路径受限,会话也能建立。

典型的 TURN 会话在媒体流经中继之前,会涉及分配、对等端权限以及可选的通道绑定。
步骤 3:媒体或数据通过服务器中继
当中继路径就绪后,流量不再依赖直连的可达性。每个端点将数据包发送给 TURN 服务器,服务器再将其转发到另一端。在 WebRTC、与 SIP 相关的媒体处理或浏览器协作平台中,根据应用设计,这些流量可能包括语音、视频或数据通道内容。
权衡关系很直接:TURN 提高了可达性和可靠性,但也增加了中继开销。流量必须经过额外的一跳,因此延迟、带宽使用和服务器负载都比成功的直连路径要高。正因如此,通信平台通常优先尝试直连,只有在网络条件导致直接媒体传输不可行时才使用 TURN。
这种权衡通常是可以接受的,因为一个效率稍低的会话远比一个失败的会话好得多。在客户支持、医疗、教育、会议以及现场响应等业务流中,服务的连续性往往比追求绝对最短的网络路径更为重要。

TURN 能够为协作、支持和基于浏览器的通信服务中继实时的语音、视频和数据流量。
TURN 的常见用途
WebRTC 通话、会议及浏览器通信
当今 TURN 最显眼的应用是在 WebRTC 环境中。浏览器和 Web 应用使用 ICE 来评估可用的连接路径,而当直连路由无法建立时,TURN 作为中继选项保持会话持续。这对于一对一视频通话、语音聊天、客户支持小工具、屏幕共享以及基于浏览器的多方会议尤其重要。
对于服务提供商,TURN 减少了因网络不对称或限制性策略导致的呼叫失败次数。对用户而言,它减少了那种“电话响铃却无法接通媒体”或者“会议信令正常但音视频不通”的沮丧体验。在这个意义上,TURN 不仅支持了连接,也增强了用户对通信平台的信心。
浏览器优先的通信是 TURN 仍具战略重要性的原因之一。用户可能从家中、办公室、公共 Wi-Fi、园区网、移动网络或受控的企业环境接入,应用无法假设每种情况下的网络行为都有利。
VoIP 平台、SIP 媒体穿越与统一通信
虽然 TURN 常常通过 WebRTC 被引入,但其价值更广泛地延伸到了 IP 语音和媒体交付领域。云呼叫平台、软电话环境、基于 Web 的座席控制台、嵌入式通信客户端以及统一通信服务,在端点媒体无法直接建立时,都可能依赖中继行为。
在浏览器、移动应用、桌面客户端以及托管语音服务共存的混合环境中,TURN 有助于标准化连接行为。它成为基础设施层的一部分,支持跨分支机构、家庭办公室、远程员工及外部参与者的会话建立。
对于厂商和平台运营者,TURN 还能简化支持和排障工作。无需完全依赖不可预测的点对点路径,他们可以监控中继使用情况,了解直接连接失败的地方,并利用这些信息改善用户体验或优化部署策略。
典型应用场景
联络中心、远程医疗及面向客户的通信
任何依赖可靠浏览器或应用通信的服务都可以从 TURN 受益。联络中心用它来支持客户与座席之间的语音和视频会话,尤其当一方是从受限的企业网络或具有复杂 NAT 行为的家庭宽带环境接入时。远程医疗平台用它来降低远程问诊时的会话失败风险,而连续性和可访问性在此至关重要。
TURN 同样适用于金融咨询、保险理赔面谈、远程技术支持以及在线身份核验等场景。在这些场景中,组织通常对用户的本地网络控制有限,因此中继基础设施提供了一种保护服务可用性的实用方法。
教育、协作及分布式运营
在线课堂、内部协作工具、现场支持平台以及远程团队协作系统同样受益于 TURN。教师和学生可能来自不同的 ISP 和设备类型。项目团队可能在办公网络、家用路由器以及移动连接之间切换。分布式运营可能涉及技术人员、主管以及专家在实时排障或视觉辅助会话期间从多种环境接入。
在这些场景中,TURN 提升了一致性。平台不必假设每个参与者都拥有干净的点对点路径,而是可以在需要时使用中继连接,并保持通信会话足够稳定以支持实际工作。
这对于那些将通信视为业务流程一部分而非消费者便利的组织尤为重要。当会话支撑着服务交付、协调、诊断或决策时,恢复能力与媒体质量同等重要。
在成功的会话中,TURN 往往是隐形的;但恰恰当周边网络环境最不配合时,它的运营价值达到最高。
部署与设计考虑因素
性能、中继成本与服务器放置
由于 TURN 会中继流量,它以一种 STUN 不会的方式消耗基础设施资源。因此运营者需要考虑带宽、并发能力、地理分布以及故障切换设计。位置不当的中继会不必要地增加延迟,而过小的中继池则可能在高峰使用期造成拥塞。
对于全球服务,TURN 服务器通常按区域分布,以便用户能够接入就近的中继。对于企业或受监管的部署,运营者可能偏好受控的中继位置,以满足安全、政策或数据处理要求。无论哪种情况,中继规划都是服务架构的一部分,而非事后补救。
另外,认清成本模型也很重要。TURN 提升了可达性,但代价是让实时媒体流经过提供商的底层设施。平台中继的分钟数、参与方数量以及媒体流越多,容量规划就越关键。
安全性、凭据与传输协议选择
TURN 服务器是暴露在公网的基础设施,应当以严谨的安全控制来部署。身份验证、凭据管理、适用时的证书校验、传输选择以及滥用防护都至关重要。在很多实现中,运营者使用临时或严格管理的凭据,而不是静态的公网访问。
传输选择是另一个设计考量。TURN 可以基于 UDP 和 TCP 运行,该协议也支持客户端与服务器之间的安全传输层。恰当的选择取决于应用、防火墙条件、性能目标以及部署的安全需求。
从平台角度来看,正确的 TURN 设计通常是一种平衡。目标并非简单地中继所有流量,而是提供一条可靠、安全的回退路径,能够干净地集成到更广泛的连接框架中,并支持可预测的用户体验。
TURN、STUN 和 ICE 关系一览
对于希望有一个简单框架的读者,三者关系可以总结如下:
STUN:帮助客户端了解它在本地网络外部呈现的样子。
ICE:收集候选路径、测试连接性,并选择最佳可用路由。
TURN:当直接通信不可行或不够可靠时,提供一条中继路径。
这就是为什么 TURN 常被当作回退技术来讨论,却作为必不可少的基础设施来部署。在现代实时通信中,回退连接不是奢侈品,而是让服务达到生产就绪状态的一部分。
结论
TURN 是一种基于中继的 NAT 穿越协议,能让实时会话在直接点对点通信失败时继续进行。它与 ICE 紧密相关,广泛用于 WebRTC 环境,并且在云呼叫、浏览器通信、在线协作、客户互动以及其他交互式 IP 服务中具有普遍意义。
它的价值是务实的,而非理论上的。TURN 不是为了在直连好用的时候取代直连,而是为了在 NAT 行为、防火墙策略或网络复杂性原本会阻挡连接时,确保语音、视频和数据会话仍然能够建立。对于任何依赖可靠实时通信的平台而言,TURN 是韧性服务设计的基础组成部分。
常见问题
TURN 和 STUN 是一样的吗?
不一样。STUN 和 TURN 相关但用途不同。STUN 帮助端点发现其公网地址行为,而 TURN 则在直连路径无法可靠建立或维持时提供中继服务。
TURN 会取代 ICE 吗?
不会。ICE 是更广泛的连接框架,负责收集和评估连接候选者。TURN 是 ICE 在需要中继候选时可以使用的一个工具。
为什么 TURN 常被描述为一种回退机制?
因为通过服务器中继流量相比成功的直连路径会增加开销。平台通常优先尝试直连,仅在网络条件使得直接媒体传输不可行时才使用 TURN。
TURN 只用于 WebRTC 吗?
不是。WebRTC 是 TURN 被讨论得最多的场景之一,但基于中继的 NAT 穿越同样适用于更广泛的实时 IP 通信环境,包括浏览器媒体平台、软客户端以及其他交互式通信服务。
为什么运营者如此重视 TURN 服务器的容量规划?
因为 TURN 承载着实时会话的流量。随着中继使用量的增加,服务器的带宽、处理能力、会话容量以及地理分布都会对服务质量和可靠性产生重要影响。