【问题标题】:Can i use Local ICE Candidates as indications of connectivity?我可以使用本地 ICE 候选人作为连接的指示吗?
【发布时间】:2014-01-20 07:23:48
【问题描述】:

我的任务是确定单个浏览器客户端的连接性。我想知道发出的本地 ICE 候选人是否表明客户的连接性。因此,检查来自 google 的 STUN 服务器的候选人:

mid: audio, candidate: a=candidate:941443129 2 udp 1845501695 2.84.19.92 49669 typ srflx raddr 192.168.1.2 rport 49669 generation 0

我可以看到我的公共 ip 2.84.19.32 并且我还可以查看我在 NAT 后面的本地 ip 192.168.1.2。此时我也知道浏览器正在侦听 UDP 端口 49669 并等待连接。此时我可以推断 STUN 客户端已成功连接到我的公共 ip 和端口吗?

我了解 ICE 的工作是确定是否可以与该候选人建立连接,但是否可以确定与单个客户端(浏览器)的连接?

我的最终问题/任务是利用 ICE 流程并了解 [单个] 客户端是否在 NAT 后面以及那是什么类型的 NAT 的事实。这可能吗?

【问题讨论】:

  • 你可以通过'typ'属性判断它是什么类型的ice候选,如果是'host'那么它肯定在NAT后面,当它是'relay'时它在外面NAT。

标签: webrtc


【解决方案1】:

候选人的存在并不能说明您有联系。但是如果你分析它们的内容,你可以得出一些结论。 您需要考虑您使用的 STUN/TURN 服务器。

  • 如果未定义任何内容,您仍然可以拥有候选者,如果设备连接到网络中并且具有 IP 属性(即使网络无法访问 Internet),您将只有具有本地 IP 地址的候选者。
  • 如果你定义了一个服务器,并且你得到了其他类型的候选项而不是主机,这意味着你有连接(至少连接到定义的 STUN/TURN 服务器,应该在你的机器之外)。李>

要知道您是否在 NAT 后面,您可以检查是否存在具有本地 IP 的候选主机。

获得候选人后,这意味着该 host:ip 可以从 Internet 访问。这就是联系外部 STUN/TURN 服务器的全部想法。是打开那些端口......但是,它们可以访问的事实并不意味着你会受到攻击。您实际上可以接收,但这是密钥协商进入并检查只有其他对等方(具有密钥的对等方)可以“建立连接”到该主机的地方:端口

【讨论】:

  • 但是从外部 STUN 服务器(即 google 的)获取 ICE 候选人是否意味着可以从新候选人提供的 host:ip 上的互联网访问我的主机?据我了解,STUN/TURN 与连接无关,它们只会向我提供 STUN 服务器看到的 IP 地址和中继服务器,以防 TURN 服务器被定义...
  • 我接受这个作为对“我可以通过读取 ICE 的候选人发射来确定连通性”问题的答案,@nakib 说的答案是“否”。
  • 没错。如果你定义了一个 STUN 服务器并从中获得了一个候选者,这意味着你已经连接到网络(正如我所说,至少连接到该服务器)。这意味着您的 host:ip 可以从 Internet 访问。这就是联系外部服务器的全部想法。是打开那些端口......但是,它们可以访问的事实并不意味着你会受到攻击。您实际上可以接收,但这是密钥协商进入并检查只有其他对等方可以“建立连接”到该主机的地方:端口
  • 我刚刚验证了 ICE 候选者确实报告了连接性,如果您收到 HOST 候选者,则意味着 STUN 服务器可以在该地址/端口/proto 上连接。此发现已应用于 www.check-connectivity.com,因此它将可靠地确定您是否接受传入的 UDP/TCP 连接
【解决方案2】:

有两种方法可以从 webRTC 连接对象中获取这些数据:

pc.iceConnectionState, this tells you the connection process
pc.iceGatheringState, this is about the 'getting' of the ice candidates

但两者似乎都不起作用,因为我在阻止 RTC 的防火墙后面,但 pc.iceConnectionState 仍然让我连接,但你可以试一试,看看它是否适合你。

【讨论】:

    猜你喜欢
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多