V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tavimori
V2EX  ›  宽带症候群

利用包括 WebRTC 在内的技术,是否可以在网页里直接检测本地的 NAT 环境?

  •  
  •   tavimori · 2022-04-29 14:05:27 +08:00 · 2613 次点击
    这是一个创建于 699 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近看了一点关于 WebRTC 技术的文档,目前理解到网页浏览器可以通过请求 STUN 服务器获得本机 IP ,然后尝试发起 RTCDataChannel 会话。

    按照我的理解公网的 Web 服务器配合公网 WebRTC 服务器进行打洞测试应该可以实现 NAT 类型的检测?

    但是按照我目前查询到的 NAT 检测工具,基本都是命令行或者单独程序的实现,所以请问现在有没有已经可以提供这种服务的网站,或者说这类服务有什么客观原因没法实现么?

    第 1 条附言  ·  2022-05-04 12:12:29 +08:00

    谢谢大家,关于这个问题,我也在 Stackoverflow 上问了下 ⬇️。

    https://stackoverflow.com/questions/72103231/is-it-possible-to-test-nat-type-in-a-web-page-only-possibly-using-webrtc

    看起来可行,打算有时间的话自己实现一个。

    12 条回复    2022-05-03 16:16:59 +08:00
    yplam
        1
    yplam  
       2022-04-29 14:22:59 +08:00 via Android
    没需求吧,本来 signal 部分比较简单,做业务逻辑顺手加上去就好
    tavimori
        2
    tavimori  
    OP
       2022-04-29 15:10:28 +08:00
    找到一个有相关的介绍,但是实现的非常初步的网站: https://webrtchacks.com/symmetric-nat/
    网站给的 DEMO 在: https://jsfiddle.net/5ftsd5c2/17/
    但是看起来没有配相应的后端服务。

    感觉这类功能还是挺实用的,要是有一个用于 debug 还是不错的。
    shuax
        3
    shuax  
       2022-04-29 15:21:15 +08:00
    见过用 flash 实现的
    happyn
        4
    happyn  
       2022-04-30 10:00:47 +08:00
    关注关注;话说 parsec.app 不是也能在浏览器实行穿透进行远程桌面吗? 是不是也是类似的技术?
    haah
        5
    haah  
       2022-04-30 10:09:38 +08:00
    你的意思是是否有类似的 NAT 协议吧?有了协议,软件层才能进行检测吧!
    Tyanboot
        6
    Tyanboot  
       2022-05-01 02:46:05 +08:00
    STUN 不就是用来检测 NAT 类型的吗
    tavimori
        7
    tavimori  
    OP
       2022-05-01 23:03:57 +08:00
    @haah
    @Tyanboot 是,但是在 web 里似乎纯靠请求 STUN 服务器只能获得设备的公网 IP ,无法知道具体的 NAT 类型?
    所以我想问问有没有什么网站可以直接告诉在网页里告诉我我的网络环境是哪种 NAT 类型。
    haah
        8
    haah  
       2022-05-02 09:48:05 +08:00
    你的思路不对,检查下吧!
    tavimori
        9
    tavimori  
    OP
       2022-05-02 10:48:59 +08:00
    @haah 能否具体讲解下?我也是刚刚了解这个领域。
    haah
        10
    haah  
       2022-05-02 21:50:34 +08:00
    @tavimori 你的需求是啥?
    v2tudnew
        11
    v2tudnew  
       2022-05-03 00:19:13 +08:00
    @haah #10 减少步骤?目前要检测必须先下载软件,如果浏览器就能实现就完全没必要了。
    haah
        12
    haah  
       2022-05-03 16:16:59 +08:00
    你用 WebRTC 改啥呀?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5492 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 01:37 · PVG 09:37 · LAX 18:37 · JFK 21:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.