首先是背景。
我已经在我的本地计算机上安装了coturn服务器(在防火墙后面并使用本地IP)。 我为cotrun服务器创建了一个端口转发,假设我的本地IP是:192.168.0.11:3478映射到我的公共IP 10.1.10.212:3478。
当我使用一些在线工具来检查我的公共IP是否有此端口打开它?该实用程序显示它已打开。
我正在尝试使用这个小提琴测试此服务器:Code to test TURN server
我从中移除了晕眩配置,并添加了我的live ip和port。当我尝试测试它时,它说你的TURN服务器在Web浏览器的控制台中坏了。我看到输出失败了。
我还使用以下命令从此链接创建用户。 Wiki to Coturn Configuration
// 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。我不确定缺少什么。
修改-1
我还可以看到处理的传入数据包消息,错误401:在TURN
服务器
修改-2 我解决了与TURN服务器相关的问题,在客户端代码中添加了转向服务器,仍面临问题,呼叫未通过,
更新 这是我发现的,它之前没有工作的原因是由于网络中的路由器有缺陷。这件事已经骚扰了我近一个月(但互联网以前工作得很好)。但我发现丢失了数据包,我切换到LAN电缆,我甚至避开了组织的防火墙,并且它工作得很好。然后我在防火墙中配置了规则,它也开始工作了。
答案 0 :(得分:1)
可能导致此问题的一些问题:
-X
选项需要一个参数 - 如果TURN服务器位于NAT后面,则为外部IP。
如果要在命令行上设置所有参数,则应包括-n
以确保它不会加载不相关的配置文件。
TURNSERVER_ENABLED=1
是在系统启动时使用默认配置启动turnserver
。如果从命令行手动启动turnserver
,则不希望这样。
https://github.com/coturn/coturn/blob/master/README.turnserver
答案 1 :(得分:0)
"我为CoTurn服务器创建了一个端口转发,让我说我的本地IP是:192.168.0.11:3478映射到我的公共IP 10.1.10.212:3478。"
现在你肯定知道IPV4中的私有地址空间是(private IP ranges): 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呼叫成功(主要是本地网络或中继(TURN)呼叫)。 :-D