我們在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地址是內部還是公共的)。
所以問題是:
什麼是從STUN服務器獲取公網IP候選人停止B'它是否被公司防火牆阻止了一些端口?
B永遠不會獲得公開IP候選人,A怎麼連接他? A和B可以一直使用WebRTC。
爲什麼C無法連接B?或者A和C有什麼不同?他們兩個使用ADSL,光纖調制解調器到TPLINK路由器(PPPOE撥號+默認DHCP)到電腦,完全一樣。
謝謝。
#2的一個可能的答案是A能夠接收來自B的分組,因爲B具有A的公共地址。然後,從接收到的數據包中,A產生「對等反身」候選,並且能夠將數據包發回到它從其接收到的相同地址。你可以在chrome中檢查它:// webrtc-internals(「peer reflexive」意思是「prflx」遠程候選類型)。 –