在与WebRTC一起工作的同时,我已经了解了野兽是什么样的NAT和STUN,我正在去测试我的理解它是如何工作的。
以下是link,您可以将您的远程地址和端口与本地地址一起提供。
例如: 我的本地ip:端口是
192.168.1.2:4500
我的互联网服务提供商会将其翻译为
209.200.1.2:14500
并将存储转换表,如
|209.200.1.2:14500|192.168.1.2:4500|
它实际上意味着连接到209.200.1.2:14500时会转发到192.168.1.2:4500。
假设我对NAT有正确的理解,我希望当我设置在端口4500(本地)上侦听传入连接时,某人将能够通过209.200.1.2:14500连接到它但是它没有发生(无法建立联系)为什么?
非常感谢你的帮助。
答案 0 :(得分:4)
NAT仅用于传出连接。 NAT路由器不会自动地意识到开始在端口上侦听的专用IP上的机器,并且NAT路由器的公共IP端口和专用IP端口之间通常没有保证的对应关系。此外,NAT路由器无法正确地将传入的tcp / ip连接数据包(SYN)中继到私有IP,因为它们的私有IP完全不可知。
然而,有一系列称为hole-punching的技术可以实际运作。它们通常需要具有非NAT地址的第三方服务器在两个端点之间进行调解以建立连接,然后在原始的两个主机之间进行大量的tcp / ip交换。