1

先说一点背景。

我已经在我的本地机器上安装了 coturn 服务器(在防火墙后面并使用本地 IP)。我已经为 cotrun 服务器创建了一个端口转发,可以说我的本地 ip 是:192.168.0.11:3478 映射到我的公共 ip 10.1.10.212:3478。

当我使用一些在线工具来检查我的公共 IP 是否打开了这个端口?该实用程序显示它已打开。

我正在尝试使用此小提琴测试此服务器:测试 TURN 服务器的代码

我从中删除了 stun 配置,并添加了我的实时 IP 和端口。当我尝试对其进行测试时,它说您的 TURN 服务器在 Web 浏览器的控制台中已损坏。我看到失败的输出。

我还使用以下命令从此链接创建用户。 Wiki 到 Coturn 配置

// created test user
sudo turnadmin -a -u test -r  test -p test

// enabling admin support in web (not sure how to access it in browser)
sudo turnadmin -A -u test -p test

我使用以下命令启动转向服务器: turnserver -L 192.168.0.11 -a -f -v -X -r test

我已启用“TURNSERVER_ENABLED”

/etc/default/coturn 
TURNSERVER_ENABLED=1

我的关于:webrtc 的屏幕截图: about:webrtc 截图

请为我的 about:webrtc 找到下面附加的屏幕截图。我不确定缺少什么。

EDIT-1 我还可以看到处理的传入数据包消息,错误 401:在TURN服务器控制台中未授权

EDIT-2 我解决了 TURN 服务器相关问题,也在客户端代码中添加了转弯服务器,仍然面临问题,呼叫未通过, 转电话不工作

更新 这是我发现的,它早期无法正常工作的原因是由于网络中的路由器有缺陷。这件事已经困扰了我将近一个月(但是互联网过去可以正常工作)。但我发现有数据包丢失,我切换到 LAN 电缆,我什至避开了组织的防火墙,它在那里工作得很好。然后我在防火墙中配置了规则,它也开始工作了。

4

2 回答 2

1

可能导致这种情况的几个问题:

-X选项需要一个参数 - 如果 TURN 服务器位于 NAT 之后,则为外部 IP。

如果您在命令行上设置所有参数,则应包括-n以确保它不会加载不相关的配置文件。

TURNSERVER_ENABLED=1turnserver在系统启动时以默认配置启动。turnserver如果您从命令行手动启动,您不希望这样做。

https://github.com/coturn/coturn/blob/master/README.turnserver

于 2017-06-07T12:56:34.410 回答
0

“我已经为 CoTurn 服务器创建了一个端口转发,可以说我的本地 ip 是:192.168.0.11:3478 映射到我的公共 ip 10.1.10.212:3478。”

现在您肯定知道 IPV4 中的私有地址空间是(私有 IP 范围): 10.0.0.0 – 10.255.255.255 172.16.0.0 – 172.31.255.255 192.168.0.0 – 192.168.255.255

因此,您的第一个 IP 在最后一个私有 IP 范围内,而您所谓的“公共 IP”在第一个私有 IP 范围内。现在您需要找到您的 TRUE REAL 公共 IP 地址以尝试从外部连接到它。我会说看起来你的 ISP 让你在 NAT 后面。所以你的 TURN 服务器可能在两个 NAT 之后。对于旨在帮助穿透 webRTC 客户端的 NAT 的服务器来说,这是一种具有讽刺意味的情况。您可能想尝试将 CoTurn 放在可以像 AWS 一样工作的地方(CoTurn 友好 NAT 的特殊情况)。

就在最近(得到了很多帮助——甚至完成了大部分工作)CoTurn 可以在云和本地 Ubuntu 上工作;-) (尽管从未阻止我吹牛)。尽管 srflx-call-success 令人不安(主要是本地网络或中继(TURN)呼叫)。:-D

于 2017-08-15T13:04:08.680 回答