• 请不要在回答技术问题时复制粘贴 AI 生成的内容
fancy2020
V2EX  ›  程序员

WebRTC 到底有没有实用价值? NAT 穿透成功的概率有多大?

  •  
  •   fancy2020 · Feb 11, 2020 · 7238 views
    This topic created in 2307 days ago, the information mentioned may be changed or developed.

    之前用 WebRTC 技术做了个传文件的网站,最近测试发现外网之间的文件传输非常慢, 经过调查才知道原来外网之间的连接并没有走 P2P ,而是走了 TURN 协议,相当于让服务端转发数据了。 我试了用我的宽带连手机 4G,以及与朋友的宽带连接,都没有成功。

    如果只能通过服务器转发的方式,那么使用 WebRTC 的意义就不大了,因为当初做这个项目想的就是要做一个 P2P 的文件传输网站。

    所以我想问的是,在当前大部分普通人的网络环境下,WebRTC 技术到底能不能实现真正的 P2P 连接(也就是 NAT 穿透能成功的概率有多大)?

    12 replies    2020-02-12 12:43:40 +08:00
    learningman
        1
    learningman  
       Feb 11, 2020 via Android
    在我国基本不用考虑了,国情限制,你甚至不知道有几层 NAT
    fancy2020
        2
    fancy2020  
    OP
       Feb 11, 2020
    @learningman 那很好奇那些 P2P 下载软件为啥可以 work 呢?他们的 P2P 和 webrtc 的 P2P 不是一样的吗?
    kevinle
        3
    kevinle  
       Feb 11, 2020 via Android
    mark 一下,紫薯布丁
    watzds
        4
    watzds  
       Feb 11, 2020 via Android
    六年前玩过一段时间,都是学校内网,外网穿透太不容易了
    xubeiyan
        5
    xubeiyan  
       Feb 12, 2020 via Android
    有哦,我司经常用来打视频电话哦
    sleepm
        6
    sleepm  
       Feb 12, 2020 via Android
    用 croc 吧。。。
    手机用流量好像穿透很困难
    codehz
        7
    codehz  
       Feb 12, 2020 via Android
    (我觉得国内的用例大概只能是利用这个 udp 特性进行页游了(服务器公网,然后手动 STUN
    xsen
        8
    xsen  
       Feb 12, 2020
    WebRTC 穿透成功率可以到 95%以上;当然,需要对服务器端配置与客户端配置做适当调整,进行优化,比如
    1. stun 采用 tcp 方式
    2. stun/turn 服务器端口要修改

    等等诸如此类。因为很多内网会封掉 udp,对于 tcp 只会开启 80/443
    fancy2020
        9
    fancy2020  
    OP
       Feb 12, 2020
    @xsen @codehz 我现在访问 STUN 服务是没问题的,问题在双方获取到各自的地址之后的穿透上
    codehz
        10
    codehz  
       Feb 12, 2020 via Android
    (我说的是服务器自己也作为 rtc peer 的一种用法,理论上能获得比 WebSocket 更低延迟的通讯(
    xsen
        11
    xsen  
       Feb 12, 2020
    @fanchangyong 你误解了我的回答。比如你要两端 p2p 传文件,如 A 与B,其中a、b处于不同的网络环境(家庭或公司),要穿透成功就要求a、b都穿透成功,才可以 p2p,不然是通过 turn 转发

    若 a 穿透成功;而 b 所处的网络(如某公司),防火墙把 udp 都封掉,或者把 80/443 之外的端口都封了,那么b是无法穿透成功的
    whywhywhy
        12
    whywhywhy  
       Feb 12, 2020
    p2p 穿透本质上是利用了中间设备不严格的防护,所以是需要根据情况而定的,至于你直接抛出一个“实用价值”。。。。世界上的东西都是有取舍的,只有最合适的,没有最好的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3039 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 14:28 · PVG 22:28 · LAX 07:28 · JFK 10:28
    ♥ Do have faith in what you're doing.