问题标签 [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 投票
2 回答
1352 浏览

networking - TURN server XOR-RELAYED-ADDRESS IP 不同于自己的公网IP

假设我正在运行一个绑定到公共 IP(比如 100.0.0.1)的 TURN 服务器。当服务器为创建分配请求创建中继端口时,服务器是否会在 XOR-RELAYED-地址属性?我对网络不够熟悉,无法了解所有可能的情况,并且RFC 5766并没有真正说明任何具体内容(据我所知)。

换句话说,XOR-RELAYED-ADDRESS 中的 IP 地址是多余的吗?在我考虑的所有情况下,客户端只需要知道分配的端口,并且可以完全忽略 XOR-RELAYED-ADDRESS 的 IP。只要客户端知道中继端口,它就可以始终在中继端口将中继数据发送到 TURN 服务器公共 IP(它已经知道 IP,因为它必须最初连接......)。

任何意见?

0 投票
2 回答
2579 浏览

nat - NAT 后面的 HTTP 服务器

我正在尝试使多层 NAT 后面的(apache)服务器可以从 Internet 访问。

限制:

  1. 避免中继。有一个公共服务器(我们称他为 OldMan)用于登录/眩晕,但它的带宽太差,无法承载中继数据。
  2. 我无权手动配置 NAT。3.用户无需更改浏览器或设备。(即适用于android、ios和任何PC)

我试过UPnP了,但它只适用于1 层 NAT

我试图搜索NAT遍历解决方案几个月,但徒劳无功。

我学习STUN/TURN/ICE并尝试了 pjsip (icedemo.exe + numb),但是,它的 stun 无法穿透 2 层 NAT。

我尝试了 Mist,Pwnat,但没有运气。据我所知,libjingle 听起来像是一个用于制作 Gtalk 扩展的 API……(?)

我也尝试制作 VPN/N2N 来解决这个问题,但这对公共服务器来说将是一个沉重的负担。任何 VPN 客户端都需要服务器(OldMan 服务器)将所有数据包中继到另一个,不是吗?

有什么解决方案可以解决这个问题吗?多层 NAT 后面的 HTTP 服务器。

顺便说一句,如果 STUN/TURN/ICE 有效,我的想法如下,可能吗?

  1. 用户安装了一个应用程序(例如:stun_browser_agent.exe)
  2. 用户在 Chrome 上输入以下地址:127.0.0.1:9999
  3. Chrome 连接到 stun_browser_agent.exe 守护进程
  4. 守护进程使用 Stun 协议连接到 HTTP 服务器
  5. Http Server 上的守护进程(例如:stun_apache_agent.exe)接收所有消息并将其中继到 Apache 守护进程。
  6. Apache回复所有http信息-->stun_apache_agent.exe-->stun_browser_agent.exe-->chrome

这样我们就不必修改浏览器和 Apache。

我可以参考任何可用的资源来实现这个吗?

感谢您的耐心等待

0 投票
0 回答
305 浏览

pjsip - STUN 消息的发送和回复端口?

我正在尝试使用 STUN(使用 PJSIP)实现以下流程:

[IE] <--TCP/UDP trans.--> [agentC] <----STUN-----> [agentS] <--UDP/TCP trans.--> [Apache]

[TCP/UDP trans.] 部分已准备就绪。

agentC 可能具有 stun 映射地址 1.1.1.1:11111

而 agentS 可能具有 stun 映射地址 2.2.2.2:22222

现在 agentC 向 agentS 发送一个 [HTTP GET]:

问题:

  1. agentC 的输出端口是什么?它会通过 NAT 端口 11111 还是随机端口 [ex:37654]?

2.agent应该如何回复html标签?回复11111还是之前的端口[ex:37654]?

3.如果agentC在对称NAT之后(而agentS在一个完整的锥体之后),agentC可以连接到agentS并且agentS可以回复agentC吗?

0 投票
1 回答
3244 浏览

android - 使用 SIPDROID 的 Android P2P 视频聊天

我的计划是,为 Android 创建一个即时视频聊天应用程序。我发现 Sipdroid 让我有机会使用 SIP 进行视频和语音通话。

用户只需打开应用程序,就可以立即与池中的另一个陌生人进行视频聊天。

现在的问题是:我只需要设置一个 SIP 服务器并创建一个 SIP 帐户池或按需创建它们。然后我可以使用 Sipdroid 并对其进行修改,所以它符合我的需要。这就是全部吗?这个 STUN-Server 的东西怎么样?我错过了什么吗?

平均根服务器可以连接多少个连接?实际上应该很多,因为流是使用P2P传输的。

创建 P2P 匿名视频聊天应用程序的其他建议?我见过类似的应用程序。但他们使用 FLEX。这不是我想做的。

0 投票
1 回答
2249 浏览

voip - ICE(交互式连接建立)如何工作?

我正在阅读有关 ICE 的文件,并在一个地方感到困惑。

步骤 1. 呼叫者收集传输候选(即主机、STUN 和 TURN)。

步骤 2. 主叫向被叫发送一个 SIP INVITE。

  • 这一步的细节经常被省略。不是说 NAT 已经解决了吗?

有人可以帮助呈现更大的图景吗?非常感谢。

0 投票
1 回答
11674 浏览

java - 什么是 STUN,它需要端口转发服务器吗?

我在没有基础服务器的情况下对 p2p 通信进行了一些研究,结果遇到了 STUN。根据我的阅读,STUN 是一种 NAT“打孔”方式,不需要端口转发来连接对等方。这是正确的,打孔到底是什么意思?如果不需要端口转发,这一切似乎都非常脆弱,因为它会通过防火墙,而且我不完全理解 STUN 的作用。STUN 可以在 Java 或其他语言的 p2p 程序中使用,例如聊天客户端,它通过 TCP/UDP 端口向对等方发送消息,而无需基础服务器或不需要用户进行端口转发?

0 投票
1 回答
2077 浏览

webrtc - webRTC如何实现远程音频和视频流的同步?

webRTC 根据https://apprtc.appspot.com/实现 PeerConnection

webRTC如何实现远程音频和视频流的同步?

0 投票
1 回答
6551 浏览

webrtc - 我们可以将 google stun 服务器(nodejs webrtc.io-client 的默认设置)用于商业应用程序吗?

https://npmjs.org/package/webrtc.io-client说:

用法

然后一堆回调可用

您可以通过调用 rtc.SERVER = "STUN stun.l.google.com:19302" 设置 STUN 服务器并设置您的服务器。库使用的默认 STUN 服务器 是来自 google 的服务器。

我也可以为我的商业应用程序使用相同的 STUN 服务器吗?

0 投票
1 回答
14937 浏览

javascript - 为什么“onecandidate”不起作用?

我无法理解 webRTC 的 PeerConnection 和 'onicecandidate' 事件。

据我了解,您必须使用 STUN(或 TURN)服务器启动对等连接,因为它会将您的 ICE 候选发送回与另一个对等通信。

我已经看到了将 PeerConnection 对象的服务器参数排除在外的示例,我也不明白,但我们只是说它确实需要服务器参数。

因此,当我写下以下代码时:

我希望 'onicecandidate' 事件会触发,但它不起作用。我也尝试了其他公共 STUN 服务器,但没有任何反应。所以我认为我的理解可能有问题:)

0 投票
2 回答
4117 浏览

asterisk - Asterisk 11 可以充当 ICE 服务器吗?

我最近在我的虚拟机上安装了 Asterisk 11.4。我想知道 Asterisk 11 是否可以充当 ICE 服务器?在 Asterisk 11 的 wiki 页面中,提到了 ICE,但这些配置是让 Asterisk 充当终端设备而不是服务器。提到了 stunserver 和 turnserver,Asterisk 设备必须使用它们来发送 STUN/TURN 请求.... Asterisk 本身不能充当 STUN/TURN 服务器吗?