如何自托管不依赖 WebRTC STUN 服务器 stun.l.google.com:19302?
Posted
技术标签:
【中文标题】如何自托管不依赖 WebRTC STUN 服务器 stun.l.google.com:19302?【英文标题】:How to self-host to not rely on WebRTC STUN server stun.l.google.com:19302? 【发布时间】:2013-12-02 20:27:02 【问题描述】:我刚刚下载了一个视频聊天项目。它使用 STUN 服务器并指定 URL stun:23.21.150.121
。如何使用我自己的服务器而不是 STUN 服务器?我必须输入什么来代替这个 URL?
【问题讨论】:
what is STUN stun.l.google.com:19302 used for 的可能重复项 【参考方案1】:其实没有必要设置自己的 STUN 或 TURN 服务器,因为有很多公共/半公共服务器。来自 Google 的 STUN 并不总是很有效。
这是我最新验证的列表(不要忘记 stun:/turn: 在 URL 中的方案):
url:'stun:stun01.sipphone.com',
url:'stun:stun.ekiga.net',
url:'stun:stun.fwdnet.net',
url:'stun:stun.ideasip.com',
url:'stun:stun.iptel.org',
url:'stun:stun.rixtelecom.se',
url:'stun:stun.schlund.de',
url:'stun:stun.l.google.com:19302',
url:'stun:stun1.l.google.com:19302',
url:'stun:stun2.l.google.com:19302',
url:'stun:stun3.l.google.com:19302',
url:'stun:stun4.l.google.com:19302',
url:'stun:stunserver.org',
url:'stun:stun.softjoys.com',
url:'stun:stun.voiparound.com',
url:'stun:stun.voipbuster.com',
url:'stun:stun.voipstunt.com',
url:'stun:stun.voxgratia.org',
url:'stun:stun.xten.com',
url: 'turn:numb.viagenie.ca',
credential: 'muazkh',
username: 'webrtc@live.com'
,
url: 'turn:192.158.29.39:3478?transport=udp',
credential: 'JZEOEt2V3Qb0y27GRntt2u2PAYA=',
username: '28224511:1379330808'
,
url: 'turn:192.158.29.39:3478?transport=tcp',
credential: 'JZEOEt2V3Qb0y27GRntt2u2PAYA=',
username: '28224511:1379330808'
https://gist.github.com/yetithefoot/7592580
如果你需要自己的 STUN 服务器,可以使用为 Node.js 编写的this one,或者找一些here。
您也可以查看this 和this 页面以获得更好的理解。
【讨论】:
我们应该使用这个给定的凭证吗? 这个答案非常具有误导性。您真的找不到任何免费的 TURN 服务器,并且您将需要 TURN 来获得商业产品。运行自己的或将其作为服务购买。仅当这是概念证明或爱好时才使用免费的 STUN 服务器 @TsahiLevent-Levi this one 有什么问题?它在 4 年后仍然有效,我已经使用 this answer 对其进行了测试 如果它以任何体面的方式扩展或提供全球优化路由实际服务需求,那么我会感到非常惊讶。它还附带 0 SLA 或保证,你真的不知道它的停机时间是多少。如果您认真对待您正在做的事情,这里只有其他选择:1. 部署和维护您自己的 2. 为您正在使用的 NAT 穿越服务付费 -1 因为这个答案基本上鼓励窃取其他人的配额,因为他们没有改变他们的 TURN 凭据。有许多公共免费 STUN 服务器(例如 Google 的),但不是真正用于 TURN。您可以在this article阅读更多相关信息。【参考方案2】:这是在 RTCPeerConnection 初始化中配置 STUN 和 TURN 的新方法。以下是 apprtc.appspot.com 的工作模式
var peerConnectionConfig =
iceServers:[
urls: ["turn:173.194.72.127:19305?transport=udp",
"turn:[2404:6800:4008:C01::7F]:19305?transport=udp",
"turn:173.194.72.127:443?transport=tcp",
"turn:[2404:6800:4008:C01::7F]:443?transport=tcp"
],
username:"CKjCuLwFEgahxNRjuTAYzc/s6OMT",
credential:"u1SQDR/SQsPQIxXNWQT7czc/G4c="
,
urls:["stun:stun.l.google.com:19302"]
];
More info here
【讨论】:
【参考方案3】:EmerCoin 拥有大量公共 STUN 服务器: http://enumer.org/public-stun.txt 您可以使用其中任何一个。
【讨论】:
检查 ICE 服务器的工作检查:webrtc.github.io/samples/src/content/peerconnection/trickle-ice【参考方案4】:有几个选项可以设置您自己的眩晕服务器。有rfc5766-turn-server。一旦你在你的服务器上设置了它,你就可以使用你设置的服务器的 IP 地址和端口来监听它。为此,您将需要一些基本的 linux 系统管理员知识。
【讨论】:
我们只使用 Windows 8 @Vicky 我认为您可以找到在 Windows 8 上运行的服务器,但我不会那样做。我认为最好使用公共的 stun 服务器,比如 Google 的。 @Vicky - STUNTMAN (www.stunprotocol.org) 通过 Cygwin 有一个 Windows 端口,可在 Windows 8 上运行。欢迎您尝试一下。 restund 是另一个不错的选择,但是你需要 cygwin 对于 Windows,您可以使用 IceLink 他们有一个 .net SDK以上是关于如何自托管不依赖 WebRTC STUN 服务器 stun.l.google.com:19302?的主要内容,如果未能解决你的问题,请参考以下文章
WebRTC STUN 服务器如何反馈 SDP 和 ICE 候选人?
什么会在没有指定 STUN 服务器的本地 webRTC 应用程序上生成 ICE 候选?