You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TURN中继场景下,Peer A能否通过TCP连接中继端口?

问题场景
  • Client与Peer A无法直接连接,Client已通过自身Turn server分配到一个中继端口
  • 已知Client可通过TCP连接Turn server,想了解Peer A能否通过TCP连接该中继端口

对应的拓扑图:

Peer A
                                       Server-Reflexive    +---------+
                                       Transport Address   |         |
                                       192.0.2.150:32102   |         |
                                           |              /|         |
                         TURN              |            / ^|  Peer A |
      Client's           Server            |           /  ||         |
      Host Transport     Transport         |         //   ||         |
      Address            Address           |       //     |+---------+
   198.51.100.2:49721  192.0.2.15:3478     |+-+  //     Peer A
              |            |               ||N| /       Host Transport
              |   +-+      |               ||A|/        Address
              |   | |      |               v|T|     203.0.113.2:49582
              |   | |      |               /+-+
   +---------+|   | |      |+---------+   /              +---------+
   |         ||   |N|      ||         | //               |         |
   | TURN    |v   | |      v| TURN    |/                 |         |
   | Client  |----|A|-------| Server  |------------------|  Peer B |
   |         |    | |^      |         |^                ^|         |
   |         |    |T||      |         ||                ||         |
   +---------+    | ||      +---------+|                |+---------+
                  | ||                 |                |
                  | ||                 |                |
                  +-+|                 |                |
                     |                 |                |
                     |                 |                |
            Client's                   |             Peer B
            Server-Reflexive     Relayed             Transport
            Transport Address    Transport Address   Address
            192.0.2.1:7000       192.0.2.15:50000    192.0.2.210:49191

                                  Figure 1
解答

可以,但需要满足以下几个关键前提:

  1. TURN服务器支持TCP中继:所用的TURN服务器必须配置允许TCP类型的中继连接,主流TURN服务(如coturn)默认可开启该功能。
  2. 中继端口开启TCP监听:TURN服务器为Client分配的中继端口(如图中192.0.2.15:50000)必须启用TCP监听,而非仅支持UDP。
  3. 网络路径可达:Peer A所在网络的防火墙、路由策略允许发起对该中继端口的TCP连接,没有拦截规则限制。

具体操作逻辑:

  • Client通过TCP与TURN服务器建立控制连接,完成中继端口分配、权限申请等操作。
  • Client需向TURN服务器发送权限请求(Permission Request),授权Peer A的目标地址(无论是Host地址203.0.113.2:49582还是Server-Reflexive地址192.0.2.150:32102)访问该中继端口。
  • 授权完成后,Peer A即可发起TCP连接到TURN服务器的中继端口,TURN服务器会将该连接的数据转发至Client的TCP控制连接,实现双方数据交互。

内容的提问来源于stack exchange,提问作者progquester

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 15:17:42