问题标签 [stun]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
107 浏览

java - Vuze 使用哪个 p2p 库?

Vuze 使用哪个库进行 p2p 连接?像 JXTA、STUNT、ICE4J 等等。还是他们自己开发了一个 p2p nat 遍历库?如果是,我可以在某处找到这个 p2p 连接库吗?

0 投票
0 回答
2563 浏览

webrtc - 手动处理 WebRTC ICE 候选者(来自 TURN 服务器)

我正在研究 WebRTC 框架,在两个 Android 移动设备之间建立对等连接以进行语音和视频通话。现在我想将我的解决方案转移到 NAT 起主要作用的公共网络。

我的解决方案也必须在对称 NAT 中工作,但是当设备在对称 NAT 中连接时,我的 STUN 服务器无法建立语音/视频呼叫。所以我去了 TURN 服务器设置,并在以下教程的帮助下成功完成了设置。

TURN 和 STUN Server 的免费开源实现

设置 TURN 服务器以供 WebRTC 使用

我已成功将此服务器添加到我的 Android 应用程序的 ICEServers 中,并开始获取relayICE 候选者。

我得到的候选人看起来像这样

现在我的问题开始了:

我应该如何假设这些候选人?(因为我想手动处理这些候选人,而不是仅仅将这些候选人传递到另一端)

我知道怎么理解srflx但不知道relay

中继后面是我的全球 IP 地址和端口。那么这是否意味着我必须收听raddrrport捕捉音频/视频数据?

我应该如何解析这些候选人并获取音频/视频数据?

注意:在wireshark中,我可以看到来自我的TURN服务器的数据包,该端口不等于rport上述候选人中提到的两个字段。

我在某处读到我必须从 TURN 服务器收听一些分配响应。

我真的需要知道我该怎么做。任何有关此主题的帮助将不胜感激。:(

0 投票
3 回答
36552 浏览

javascript - WebRTC - 我需要指定多少 STUN/TURN 服务器?

我遇到了问题NAT traversalWebRTC。视频流适用于某些人,但不适用于学生宿舍路由器后面的人。

我认为这应该通过使用 TURN 服务器来解决。我已经这样做了,它仍然无法正常工作,现在我想知道 TURN 服务器是否正常工作。因此,我想知道我是否可以或应该设置多个 TURN 服务器,如果可以,如何设置。

在另一个线程中找到了这个 STUN/TURN 服务器列表。现在我正在这样设置它们

所以我的问题基本上是:是否可以设置多个 STUN/TURN 服务器?如果可能的话,我应该这样做吗?该代码会是什么样子?

0 投票
2 回答
4006 浏览

c# - 带有 STUN 的 C# RDP 应用程序

我已经搜索了互联网上所有关于使用 C# 和 STUN 进行 NAT 遍历的所有链接。我得到了应用程序使用的公共 IP 和端口。在我读过的大多数网页上,STUN 是一种协议,它应该可以帮助我连接到 NAT 路由器或防火墙后面的另一个客户端。现在我的问题......如果我理解 STUN,STUN 只是为了给我公共 IP 地址和我的 NAT 的特征。

但是,我怎样才能将这些信息连接到另一个客户呢?

这是我用我的应用程序配置 STUN 的示例 http://www.codeproject.com/Articles/18492/STUN-Client

0 投票
1 回答
3861 浏览

tcp - Chrome WebRTC DataChannels:即使使用 STUN,ICE-TCP 服务器自反候选者也会丢失

我正在通过 DataChannels(CoffeeScript,对不起 JS 家伙)构建(又一个)手动信号 WebRTC 聊天。它在本地连接中工作正常,但不能通过 NAT 后面的互联网(不幸的是我还不能尝试 NATless)。

我不想维护 TURN 服务器,但如果只有一个对等点必须可以从 Internet 公开访问才能使设置正常工作,那我很好。由于我是唯一拥有可访问机器的人,因此我们需要我托管 TCP 连接。在 Firefox 中没有报告 TCP 候选,所以我猜 ICE-TCP 还不支持。

在 Chrome 上,查看 SDP 提供/答案,STUN 服务器正确识别了两个对等方的公共 IP,并添加了每个服务器自反 UDP 候选(见下面的第 10 行),但没有TCP 服务器自反候选,因此连接永远不会成功。还包括一个 TCP 候选(见下面的第 9 行),但它只是一个主机候选。

这是一个示例 SDP 报价(我的公共 IP 是 88.88.88.88):

我确信互联网可以通过 NAT 访问我的机器并且端口转发很好(我的机器是 NAT 转发到的默认主机)。

  • 为什么我的报价/答案中没有报告 TCP 服务器自反候选人?
  • Chrome 是否缺少服务器自反 ICE-TCP 候选发现?
  • 给定 STUN 服务器报告的公共 IP,是否可以手动添加服务器自反候选?
0 投票
1 回答
1193 浏览

voip - NAT Traversal - 使用 STUN 的成功概率

我正在开发一个 P2P 应用程序,我需要使用 STUN 和/或 TURN 进行 NAT 遍历。我已经研究了仅使用 STUN 时出现的问题(基本上它并不总是有效,因为它是基于 UDP 的,有些防火墙不喜欢这样 - 根据我的问题,原因并不那么有趣),我一直看到关于使用 STUN 和 TURN 进行后备的建议(ICE 方案)。

但是无论我在哪里看,我都只是看到人们“不太可能总是工作”。我正在寻找的是一些具体的数字/统计数据。我可能会尝试自己生成它们,但我没有足够的客户来获取大量样本。

所以我想知道是否有人可以对使用 STUN 进行 NAT 遍历的成功率的统计数据有所了解。如果我未能使用 TURN 作为后备,有多少对等方将无法连接?

0 投票
4 回答
21851 浏览

webrtc - 当我有一个基于 socket.io 的信号服务器时,webrtc 是否绝对需要 STUN 服务器?

我对 webrtc 的 STUN 服务器的理解是,当客户端位于 NAT 之后(在大多数情况下,如果不是全部),STUN 服务器将帮助 webrtc 客户端识别它们的地址和端口。我还阅读了一些文章,说 webrtc 客户端需要一个信令服务器。信令服务器可以是 Web 服务器、socket.io,甚至可以通过电子邮件发送 url。我的第一个问题是:STUN 服务器是信令服务器吗?

实际上,现在我构建了一个非常简单的基于 socket.io 的服务,它将客户端的会话描述广播给所有其他客户端。所以我相信基于socket.io的服务器应该对客户端的地址和端口信息有足够的了解。如果是这样的话,我们为什么还要费心拥有另一个 STUN 服务器呢?

0 投票
1 回答
1332 浏览

twisted - 我可以使用 Twisted 作为 STUN/TURN (ICE) 服务器吗?

我想实现一个 WebRTC 对等连接。我不知道如何设置 ICE 服务器或我应该使用什么工具。任何人都可以在这方面给我建议。非常感谢。

0 投票
0 回答
1949 浏览

node.js - 在我的 Windows localhost 和 Linux 服务器上配置 STUN 和 TURN

我正在使用 webRTC 创建实时视频流应用程序,所以我需要创建自己的 ICE 服务器。我已经用谷歌搜索了 2 天,以找出在我的 Windows localhost 上配置 ICE 服务器的正确步骤,以测试我的应用程序,但找不到它。请帮助提供任何参考或链接或视频,我可以在其中找到要遵循的步骤或打包以安装 ICE 服务器。如果在任何地方错了,请告诉我。提前致谢。

0 投票
1 回答
4670 浏览

c# - 在 C# 中使用免费的 STUN 和 TURN 服务器进行 NAT 遍历

这是我之前的帖子:

NAT Traversal 仅使用 C# 中的免费 STUN 和 TURN 服务器

我正在制作一个在线应用程序,可以相互进行点对点通信。大多数用户都应该在 NAT 后面的专用网络中,我需要遍历它。我买不起外部服务器,所以我唯一可以依赖的就是像Numb这样的免费服务器(这意味着我无法提供自己的实现或扩展。)

但是,经过一些研究,我无法弄清楚如何使用这些服务器。我也没有找到可以与 C# 一起使用的库。

我应该如何使用此类服务​​器通过网络建立连接?有没有一个库来简化这些东西?(我是高中生,只能用免费的。)如果也实现ICE协议就更好了。

有些人建议我使用 UPnP,这对我来说确实很有效,但有些用户不喜欢在他们的路由器上打开 UPnP。这就是为什么我再次在这里问它的原因。