问题标签 [coturn]

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 回答
2097 浏览

webrtc - webrtc 应用程序显示我的 Turn 服务器已损坏,但它可以工作

我的 stun / turn 服务器在本地 pc (CoTurn) 上运行。它在“ https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/ ”上进行了测试并且可以工作。我有一个域名并使用公共 ip 配置了调制解调器。我配置了 apache2 以使该站点对全世界可见。我有有效且有效的 letencript 证书。简而言之,一切都有效。但是测试应用程序启动了连接(外部PC通过socket.io与本地通信)但随后看不到视频并且控制台返回错误:ICE失败,您的TURN服务器似乎已损坏,请参阅about:webrtc更多细节。

我用作测试的应用程序的链接,因为我无法与我的原始版本进行比较。第一次使用 socket.io。但是 socket.io 发送和接收消息,所以这些现在不是问题。

https://github.com/anoek/webrtc-group-chat-example

PS:

好的。服务器在 nat 后面。我的应用程序(但也有链接的应用程序)在本地网络上运行良好(抱歉,我之前先检查了这一点)。这些与我的转/眩晕服务器相比,与公共眩晕/转谷歌服务器相比。这显然表明 apache2 服务器或/和转服务器设置错误。我在哪里可以找到有关它的指南?

我的服务器情况:myServerIpLocal-xxx.xxx.xxx.xxx -> nat/router/modem WithPublicIpStatic-xx.xx.xx.xx。我可以看到来自世界各地的网站,但在本地网络之外打开服务器无法工作。在本地网络内部工作正常。

这些是我的轮到配置:

0 投票
1 回答
1527 浏览

stun - 如果coturn的外部IP仅用于aws?

https://github.com/coturn/coturn/blob/c4477bfddd2cd51de1ad37032ca88330f3c44ed6/docker/coturn/turnserver.conf#L100

在 turnserver.conf 中,如果外部 IP 仅用于 aws,我会看到“对于 Amazon EC2 用户”的世界?我让stun服务器运行在k8s集群中,然后用nodeport服务暴露到公网,但是stun返回的srflx是网关地址,不是我设置的external-ip。我的 k8s 集群运行在阿里云上。希望有人能帮我解决这个问题,谢谢!!!</p>

0 投票
1 回答
3305 浏览

webrtc - 无法连接到 Coturn 服务器

我正在关注官方的coturn 文档并尝试设置一个coturn服务器来处理STUNTURN请求。我正在使用这个小 JS 脚本测试我的服务器是否正常运行:

并使用我的凭据运行它:

创建用户的位置;

这是配置文件中未注释的行:

这是运行的输出turnserver -c path/to/file.conf

当我测试我的轮到服务器时,我"is TURN server active? no"在控制台中收到了我的自定义错误消息,这表明我没有得到服务器的响应。

我已经花了几天时间试图弄清楚这一点,但我没有运气。我在这里想念什么?

0 投票
0 回答
337 浏览

webrtc - coturn STUN 请求在本地工作,但不适用于远程连接

我已成功向 coturn 服务器 ( https://github.com/coturn/coturn ) 发出 TURN 请求,但在执行 STUN 请求时失败。如果我尝试从运行服务器的同一台机器上 STUN 连接到 coturn 服务器turnutils_stunclient myIP,服务器会响应

,太棒了!为了远程测试 STUN 请求,我还在笔记本电脑上安装了 coturn。如果我从笔记本电脑发出相同的请求,则 stun 服务器仅响应 1 个响应并在此之后挂起。

没有第二条和第三条消息,命令行被阻止。

运行javascript请求时进一步确认了该问题:

我应该怎么做才能使 STUN 请求起作用?你能为我指出正确的方向吗?

- - - - - - - - -附加信息 - - - - - - - - - - -

我只测试了 TURN 功能,并且能够连接:

我已将其安装coturn并配置为服务。这是我的/etc/systemd/system/coturn.service文件的内容:

当我运行systemctl start coturn, 服务正常启动。

的内容 /usr/local/etc/turnserver.conf

的结果iptables -S

0 投票
2 回答
7434 浏览

webrtc - TURN 服务器中的“领域”是什么?

我想为我的 WebRTC 项目托管一个 TURN 服务器,但我不知道“领域”属性的作用。我看过 coturn 和 pion ,他们似乎都要求我输入这个。有人可以解释它是什么吗?

0 投票
2 回答
1862 浏览

webrtc - TURN 服务器不响应 TCP 中继候选

我为 WebRTC 设置了 turnserver 3.2.5.9

我想这样做。

我每个 Client-A 和 B 都有两个问题,它们都在不同的专用网络中。

对于客户 A 的问题。

TURN 服务器响应host srfix relay.

我希望有一个relay候选人作为tcp.

但是,我只能拥有udp

我怎样才能有一个relay候选人作为tcp.

对于客户B的问题。

TURN 服务器只响应host

因此,Client-B 无法访问 TURN 服务器。

Client-B 放置的 FW 策略是严格的,不允许使用UDP.

但是,我认为它应该通过 TCP 访问 TURN 服务器。

有谁知道在这两种情况下如何告诉 TURN 服务器客户端的全局 IP 和 TCP 端口。

这是turnserver.conf

这是来自Client-A 的Trickle ICE 工具的响应

这是来自客户端 B 的Trickle ICE 工具的响应

0 投票
1 回答
1594 浏览

centos7 - 在 Centos7 中 Coturn 安装失败

我按照此链接https://www.webrtc-experiment.com/docs/TURN-server-installation-guide.html#centos在 centos 7 中安装转服务器。配置步骤我给出了用户名和密码,也给出了与指南相同的端口。

最后我运行评论:“turnserver -v -r 127.1.1:2222 -a -b turnuserdb.conf -c turnserver.conf -u turn-username -r 127.1.1:2222 -p turn-password”

它在执行中显示错误的用户名。

在 Centos7 中安装 Coturn 的任何想法,因为我是 webrtc 的新手......

0 投票
1 回答
2720 浏览

amazon-ec2 - AWS EC2 上的 WebRTC 与 2 个不同网络上的 AWS EC2 上的 TURN 服务器,错误:ICE 失败,添加 STUN 服务器

目前,我有一个使用 WebRTC 并用部署在 AWS EC2 实例上的 Reactjs 编写的视频聊天 Web 应用程序。视频聊天与本地网络或同一 Internet 网络上的两台不同计算机上的两个用户一起工作,我们可以轻松地交谈和看到对方。

但是,当我尝试与其他网络上的另一个用户进行视频聊天时,视频聊天停止工作,并且我在 Chrome 浏览器控制台中收到如下错误消息:

另一个用户得到:

我相信问题出在 TURN 服务器上,但是我已经在 AWS EC2 实例上使用 COTURN ( https://github.com/coturn/coturn )设置了 TURN 服务器,当我在https上对其进行测试时它似乎可以工作: //webrtc.github.io/samples/src/content/peerconnection/trickle-ice/当我尝试查看中继时使用相同的凭据。

我使用此 stackoverflow 帖子中的说明部署了 TURN 服务器: How to create stun turn server instance using AWS EC2

我还允许对 AWS 安全组上的大量端口进行 UDP 和 TCP 的入站端口访问。

一些相关代码,这个处理我从 WebRTC 信令服务器返回的响应:

它主要是最后一行不起作用。

我设置了 console.logs 以查看该过程的样子:

0 投票
1 回答
2486 浏览

flutter - 如何从 WebRTC Flutter 应用程序强制 CoTURN 长期凭据验证?

我使用这个 Flutter 数据通道示例将我的 Android 应用程序连接到我本地网络上的CoTURN 服务器。CoTURN 日志显示 Android 应用程序成功连接到 CoTURN 服务器,但未显示任何用户名。我想确保在不使用长期凭据的情况下无法访问我的 CoTURN 服务器。

我的 CoTURN 服务器版本在 Debian Linux Stable (10 Buster) 上是 4.5.1.1-1.1。已lt-cred-mech在 CoTURN 服务器配置中设置,no-auth但未设置(已注释)。我verbose用来检查日志。我在我的 MySQL 数据库中创建了一个用于长期凭据的用户。在安全端口上使用此命令进行验证:

它在 coturn 日志中导致以下内容:

如果我对故意无效的用户尝试相同的命令,我会在服务器日志中得到预期的以下结果:

因此,这意味着 CoTURN 服务器确实检查了凭据。

但是,当我如下向 Flutter 应用程序添加凭据时,我得到的服务器日志似乎没有显示任何用户。最糟糕的是,如果用户故意犯错,它什么也不会改变。这是改编的代码部分:

请注意,我从以下文件中猜测了配置中的username和条目:credential

https://github.com/cloudwebrtc/flutter-webrtc/blob/master/ios/Classes/FlutterWebRTCPlugin.m

https://github.com/cloudwebrtc/flutter-webrtc/blob/master/android/src/main/java/com/cloudwebrtc/webrtc/FlutterWebRTCPlugin.java

以下是使用 Flutter 故意错误凭据时的 CoTURN 日志:

所以,我有以下问题:

  1. 如何确保我的 CoTURN 服务器在没有授权的长期凭据的情况下无法使用?

  2. 为什么 Flutter 应用程序不受相同的凭据验证的约束turnutils_uclient

  3. 我是否猜对了在 Flutter 应用程序中通过在配置中添加usernamecredential条目来指定凭据的方式?

0 投票
0 回答
1053 浏览

tcp - 无法从 Coturn 服务器获取 ICE TCP 中继候选

我目前正在尝试在 CentOS 7 上使用 Coturn 为 WebRTC 应用程序设置 TURN 服务器。由于我的组织使用严格的防火墙设置,我希望应用程序通过 TCP 中继。我正在使用 WebRTC Trickle ICE 工具 ( https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/ ) 测试 ICE 候选人收集,但我得到的唯一中继候选人是UDP 中继候选。

即使我在 TURN 服务器 URL 中指定“?transport=tcp”也是如此(例如,turn: server-ip-address :3478?transport=tcp)。在查看 Wireshark 捕获后,我注意到即使我的 WebRTC 客户端通过 TCP 连接到 TURN 服务器,分配请求中的 REQUESTED-TRANSPORT 属性仍然是 UDP。有谁知道为什么会这样?如何配置我的 Coturn 服务器以返回 TCP 中继候选者?

我目前在我的 turnserver.conf 文件中使用以下配置...

...以及我的 WebRTC 客户端中的以下对等连接配置。

这是我使用 Trickle ICE 工具得到的响应。