如何使用转服务器?

时间:2021-02-10 20:55:00

标签: turn xirsys

我正在使用 xirsys 转服务器。

现在我想将位于对称 NAT 后面的客户端 A 与同样位于对称 NAT 后面的客户端 B 连接起来。

  1. 我应该在客户端 A 上侦听哪个端口?
  2. 我应该连接到哪个 ip 和端口才能从客户端 B 与客户端 A 建立 tcp 连接?
  3. 如何获取xirsys转服务器的ip?

在客户端 A 我想运行这个命令,但我不知道我应该使用哪个端口:

sudo tcpdump -ni any port ???

在客户端 B 上我想运行这个命令,但我不知道我应该使用哪个 ip 和端口:

echo "Hello from B" | netcat ip??? port???

附注。 执行此命令后的 xirsys:

curl -s -H "Content-type: application/json" -XPUT "https://name:pass@global.xirsys.net/_turn/app" -d '{"format": "urls"}'

返回这样的东西

{
   "s" : "ok",
   "v" : {
      "iceServers" : {
         "credential" : "123",
         "urls" : [
            "stun:eu-turn4.xirsys.com",
            "turn:eu-turn4.xirsys.com:80?transport=udp",
            "turn:eu-turn4.xirsys.com:3478?transport=udp",
            "turn:eu-turn4.xirsys.com:80?transport=tcp",
            "turn:eu-turn4.xirsys.com:3478?transport=tcp",
            "turns:eu-turn4.xirsys.com:443?transport=tcp",
            "turns:eu-turn4.xirsys.com:5349?transport=tcp"
         ],
         "username" : "123"
      }
   }
}

1 个答案:

答案 0 :(得分:0)

在 TURN 场景中,两个对等方通常标记为 Client 和 Peer,其中 Client 是连接的发起者,Peer 服从 Client 提供的数据。

连接时,所有数据都通过主端口从客户端通过 TURN 服务器发送。因此,例如,如果客户端使用 turn:eu-turn4.xirsys.com:3478?transport=udp 作为其选择路由,那么所有客户端数据包都将通过端口 3478 发送。

为了与 Peer 建立连接,客户端将在 TURN 服务器上请求端口 Allocation。来自 TURN 服务器的 Allocation 响应将包含服务器上新创建的端口(通常大于 16k),称为映射中继地址。然后,客户端应将此端口与 Peer 通信(通常通过 WebSocket 信令),以便 Peer 可以连接到 TURN 服务器并开始接收/发送数据包。 Peers 连接始终通过 UDP。

至于TURN IP;你为什么需要这个?您的用例是什么?