各位论坛成员您好,
我目前正在尝试在 ISP Symmetric NAT 后面的私有 ip 形式的手机与使用 java 的公共 ip 之间进行 p2p。为此也很累 Stun 服务器,但 stun 服务器只检测 NAT 的类型并且不能检索端口映射信息。有趣的是,我还看到谷歌 webRTC 很容易做到这一点。那么我的 2 个 IP 地址之间可以通信吗?请给我一些关于在这种情况下可能发生什么的明确解决方案。此外,如果您曾经见过任何类似于我的不错的正在运行的项目,请分享链接。谢谢。
各位论坛成员您好,
我目前正在尝试在 ISP Symmetric NAT 后面的私有 ip 形式的手机与使用 java 的公共 ip 之间进行 p2p。为此也很累 Stun 服务器,但 stun 服务器只检测 NAT 的类型并且不能检索端口映射信息。有趣的是,我还看到谷歌 webRTC 很容易做到这一点。那么我的 2 个 IP 地址之间可以通信吗?请给我一些关于在这种情况下可能发生什么的明确解决方案。此外,如果您曾经见过任何类似于我的不错的正在运行的项目,请分享链接。谢谢。
对称 NAT 在 P2P 连接中是非常特殊的情况。他们为每个传出数据包随机映射公共端口。阅读这篇文章Symmetric NAT and It's problem 。正如您所提到的,您确实使用了 STUN。但它只映射公共/外部 ip 和端口。尝试使用 TURN 服务器。TURN 服务器旨在处理 STUN 失败的情况。我不是 webrtc 方面的专家,但我正在使用 PJNATH。这个库实现了 ICE 栈,它使用 STUN 和 TURN 协议来建立 P2P 通道。