webrtc的stun服务器无法穿透国内三大运营商4G

tryme 发布于 2017/11/06 08:41
阅读 3K+
收藏 3

最近在研究P2P视频通信,由于要集成到APP中,信令服务器与STUN服务器都是部署在公网上(阿里云)。经过测试最终结果如下:

  1. 同一个局域网的两台移动设备可以连接进行通信
  2. 移动4G与WiFi,移动4G与联通4G,移动4G与电信4G都是可以连通进行通信
  3. 联通4G与WiFi,电信4G与WiFi,WiFi与WiFi偶尔可以通信,但是大多数是不可以连通的

以上情况是在STUN穿透服务器下测试的,只要使用TURN服务器进行穿透的话都是可以连通的,但是不太理解STUN服务器为什么不能穿透联通和电信的4G网络。经过后端和前端的debug及查阅相关资料得到如下发现:

  1. 运营商的NAT给电信4G或者联通4G分配的内网外网IP映射每次切换数据网络是一直变化的
  2. 电信4G与联通4G分配是多IP,而移动的4G分配的公网IP是不变的(在P2P连接使用中),电信、联通4G分配的公网IP一直是变化的且前后端debug到的ip是不同的
  3. 当两台移动设备尝试建立连接时,如果通过STUN服务器无法穿透,STUN服务器的日志中显示双方在不断的尝试穿透

但是问题依然没有解决,所以想请教下各位大牛,联通和电信的内部NAT是什么类型的(如果是对称型NAT就只能依赖TURN服务器转发了)?联通电信分配的公网IP为什么一直是变化的?能否更改stun配置来固定分配一个可直接两客户端直接建立连接的公网IP?当然前提是使用STUN进行穿透,暂时不考虑TURN(因为它都能穿透^_^),希望大家指点一下!

加载中
0
google君不是万能的
google君不是万能的

想请问下,你解决了没有.  如果解决了,如何解决的???

返回顶部
顶部