分支这个问题WebRTC - 我需要指定多少个STUN/TURN服务器?
当提供多个TURN服务器时,WebRTC如何确定要使用哪些TURN服务器?
我正在尝试在多层NAT后面建立一个(apache)服务器,以便从Internet访问.
限制:
我尝试过UPnP
,但它只适用于1层NAT.
我试图搜索NAT
遍历解决方案几个月,但是徒劳无功.
我研究STUN/TURN/ICE
,并尝试了pjsip(icedemo.exe +麻木),然而,它的晕眩不能穿过2层NAT.
我试过Mist,Pwnat,但没有运气.而libjingle听起来像是一个用于制作Gtalk扩展的API,我知道......(?)
我也尝试过make VPN/N2N来解决这个问题,但这对公共服务器来说是一个沉重的重载.任何VPN客户端都要求服务器(OldMan服务器)将所有数据包中继到另一个,不是吗?
有什么解决方案可以解决这个问题吗?多层NAT背后的HTTP服务器.
顺便说一句,如果STUN/TURN/ICE有效,我的想法如下,是否可能?
然后我们将不必修改浏览器和Apache.
我可以参考的任何可用资源实现这个?
感谢您的耐心等待
我正在通过ICE/STUN规范并提出了一个问题.如果我位于NAT后面,可能是Full Cone,Restricted或Port Restricted但不是对称NAT,并且考虑到我正在使用UDP,那么在这种情况下,我的SERVER REFLEXIVE和PEER REFLEXIVE地址/候选将是相同的,对吧?我无法想象在什么情况下(对于上面提到的NAT类型)它们会彼此不同?或者如果它们真的不同,那么它只能意味着我的NAT是对称的?
我正在尝试在我的树莓派上设置一个能够突破 NAT 路由器后面的实现,这样我就可以远程连接到它,无论它位于哪个网络后面。
我已经尝试过 pagekite.me,它作为中继/反向隧道解决方案非常棒,但我觉得它仍然有点笨重(存在延迟问题,因为中间需要连接一台额外的服务器)。
我已经阅读了有关 STUN 和 ICE 的信息,但我不知道有什么解决方案可以在我的树莓派上实现。
目标是我可以通过 SSH 连接到我的 PI,无论其网络配置(路由器/网络)和网络防火墙如何。
有人可以指出我应该在哪里或寻找什么的正确方向吗?
使用webRTC创建对等音频连接时,如果用户位于路由器后面,我们使用的STUN服务器将返回公共IP.现在在ICE对象中,我可以看到rport始终在50000之间.
有没有办法使用特定端口,以便用户不必打开所有这些端口?
我刚刚开始学习 WebRTC 来实现音频和视频应用程序,并且知道有各种公共眩晕服务器可用于对等连接。但我有点困惑我可以将这些公共服务器用于商业应用程序吗?
另外,我想知道如果我想创建商业应用程序,是否有任何教程或指南可以让我了解如何制作和部署自己的眩晕或转向服务器?
最近我注意到 WebRTC 可能会泄漏真实的 IP 地址,即使是在 VPN 之后。WebRTC 究竟如何才能获得我的真实 IP 地址?
VPN 通常会创建一个新接口,并将所有数据包路由(当我检查路由表时)到该接口。那么 WebRTC 如何获知我的真实 IP 地址呢?是否以某种方式不使用由 VPN 创建的接口?
我读过 WebRTC 使用 STUN、TURN 和 ICE 协议来获取真实 IP 地址。他们如何获得这些信息?
防火墙规则是否能够防止这种泄漏?
编辑:我在 NATed 网络中使用 VPN,这意味着我的计算机不知道我的 ISP 提供的 IP 地址。那么,WebRTC 是否有可能获得它以及如何获得它?
我正在尝试制作一个可以在移动浏览器上玩的点对点 Javascript 游戏。
我了解到 80% 到 90% 的设备无需 TURN 服务器即可通过 WebRTC 连接,因此我完全不知道下一步该做什么。
桌面版:Google Chrome 79.0.3945.130(官方版本)(64 位)(同类:稳定)
移动设备(Pixel 3/Android 10):Google Chrome 79.0.3945.116
移动网络
Time Event
1/24/2020, 11:58:17 PM createLocalDataChannel
label: Test, reliable: true
1/24/2020, 11:58:17 PM negotiationneeded
1/24/2020, 11:58:17 PM createOffer
1/24/2020, 11:58:17 PM createOfferOnSuccess
1/24/2020, 11:58:17 PM setLocalDescription
1/24/2020, 11:58:17 PM signalingstatechange
1/24/2020, 11:58:17 PM setLocalDescriptionOnSuccess
1/24/2020, 11:58:17 PM icegatheringstatechange
1/24/2020, 11:58:17 PM icecandidate (host)
1/24/2020, 11:58:17 PM …
Run Code Online (Sandbox Code Playgroud) 我在 Chrome 中测试 STUN 服务器时遇到此错误:
服务器 stun:stun.l.google.com:19302 返回错误,代码=701:STUN 主机查找收到错误。
https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
然而,当我在 Microsoft Edge 浏览器中测试它时,它工作得很好。谁能告诉我是什么问题吗?
我也无法 onIceCandidate
在 Android 中调用回调。
为了我,我正在逐步测试 WebRTC 程序。
我为无服务器 WebRTC 编写了一些测试站点。
http://webrtcdevelop.appspot.com/
其实用的是google的STUN服务器,只是没有部署信令服务器。
会话描述协议 (SDP) 是手动交换的,即在浏览器窗口之间复制粘贴。
到目前为止,这是我用代码得到的结果:
'use strict';
var peerCon;
var ch;
$(document)
.ready(function()
{
init();
$('#remotebtn2')
.attr("disabled", "");
$('#localbtn')
.click(function()
{
offerCreate();
$('#localbtn')
.attr("disabled", "");
$('#remotebtn')
.attr("disabled", "");
$('#remotebtn2')
.removeAttr("disabled");
});
$('#remotebtn')
.click(function()
{
answerCreate(
new RTCSessionDescription(JSON.parse($('#remote')
.val())));
$('#localbtn')
.attr("disabled", "");
$('#remotebtn')
.attr("disabled", "");
$('#remotebtn')
.attr("disabled", "");
});
$('#remotebtn2')
.click(function()
{
answerGet(
new RTCSessionDescription(JSON.parse($('#remote')
.val())));
$('#remotebtn2')
.attr("disabled", "");
});
});
var init = function()
{
//offer------
peerCon =
new RTCPeerConnection(
{
"iceServers": [ …
Run Code Online (Sandbox Code Playgroud)