【问题标题】:How to self-host to not rely on WebRTC STUN server stun.l.google.com:19302?如何自托管不依赖 WebRTC STUN 服务器 stun.l.google.com:19302?
【发布时间】:2013-12-02 20:27:02
【问题描述】:

我刚刚下载了一个视频聊天项目。它使用 STUN 服务器并指定 URL stun:23.21.150.121。如何使用我自己的服务器而不是 STUN 服务器?我必须输入什么来代替这个 URL?

【问题讨论】:

标签: node.js webrtc stun


【解决方案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

您也可以查看thisthis 页面以获得更好的理解。

【讨论】:

  • 我们应该使用这个给定的凭证吗?
  • 这个答案非常具有误导性。您真的找不到任何免费的 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 您可以使用其中任何一个。

    【讨论】:

    【解决方案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
    猜你喜欢
    • 2013-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    相关资源
    最近更新 更多