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

2020-02-11 22:40:46 +08:00
 fancy2020

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

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

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

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

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

若 a 穿透成功;而 b 所处的网络(如某公司),防火墙把 udp 都封掉,或者把 80/443 之外的端口都封了,那么b是无法穿透成功的
whywhywhy
2020-02-12 12:43:40 +08:00
p2p 穿透本质上是利用了中间设备不严格的防护,所以是需要根据情况而定的,至于你直接抛出一个“实用价值”。。。。世界上的东西都是有取舍的,只有最合适的,没有最好的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/643881

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX