2017-02-28 24 views
0

我們在3位A,B和C沒有冰候選人有公網IP,但的WebRTC仍然可以正常工作,有時

A和C測試的WebRTC是ADSL,一個在家裏一個辦公樓。 B是公司的靜態IP直連線,帶有公司防火牆和一些端口過濾規則。

結果是:A可以用兩個連接,但B和C只能與A連接

因此,我們檢查了他們的瀏覽器控制檯輸出。 A和C可以同時獲得內部和公共IPv4候選(192.168.1.xxx和123.34.xxx.xxx)。 B可以找到4個ICE候選人,2個內部IPv4候選人(10.0.xxx.xxx)和2個IPv6候選人(不知道IPv6地址是內部還是公共的)。

所以問題是:

  1. 什麼是從STUN服務器獲取公網IP候選人停止B'它是否被公司防火牆阻止了一些端口?

  2. B永遠不會獲得公開IP候選人,A怎麼連接他? A和B可以一直使用WebRTC。

  3. 爲什麼C無法連接B?或者A和C有什麼不同?他們兩個使用ADSL,光纖調制解調器到TPLINK路由器(PPPOE撥號+默認DHCP)到電腦,完全一樣。

謝謝。

+0

#2的一個可能的答案是A能夠接收來自B的分組,因爲B具有A的公共地址。然後,從接收到的數據包中,A產生「對等反身」候選,並且能夠將數據包發回到它從其接收到的相同地址。你可以在chrome中檢查它:// webrtc-internals(「peer reflexive」意思是「prflx」遠程候選類型)。 –

回答

0

經過進一步的研究,C沒有使用ADSL。它實際上是一個提供防火牆網絡的辦公大樓。這就是爲什麼C不能連接B而是A可以連接。

對不起,客戶「認爲」他們知道他們的網絡細節。

感謝泰勒,你是對的。 WebRTC只需要一個開放的網絡就可以工作。

經過數小時的研究,我發現唯一的解決方案是TURN服務器。所以我認爲這個問題現在可以結束。

相關問題