穿越防火墙NAT的方法

穿越防火墙NAT的方法

如何穿越防火墙NAT,首先需要计算机节点可以自动判断自己的NAT状态,计算机节点内部内置了

判断逻辑,在外部需要一台STUN的服务器,通过发送请求后可以计算机节点自己所在NAT的情况.
在处理Full Cone NAT时由于IP地址和通讯端口都不做限制可以说它在通讯层面的级别和公网节

点是一致的.穿越这类NAT只需要内部先发起呼叫后,外部的被叫端可以比较轻松的建立通道.
由于处于严格控制的NAT后的节点间无法直接通讯,所以需要利用第三方服务器来做沟通的桥梁.

我们知道在私网后的计算机间IP不同不在一个网段,所以当他们需要沟通时往往借助于处在公网

的计算机来沟通,公网计算机节点为两个都可以访问到他的私网节点做好IP通道转发私网节点间

的通讯信息,这个公网节点的计算机就称隧道服务器.
处理双方在Symmetric NAT 和 Port Restricted NAT后需要外部的隧道服务器来使的处于NAT后

的计算机节点可以沟通.
通讯的双方如果有一方是Symmetric NAT 和 Port Restricted NAT,而另外一放在Full Cone NAT

或者公网的节点,NAT后的可以和Full Cone NAT和公网的节点直接通讯,反方向的通讯需要超级

节点先通知一下对方然后超级节点做隧道服务器.
双方在Restricted Cone NAT后的节点由于他们的NAT不改变通讯端口,所以可以通过在NAT"打洞"

的技术让其双方通讯.
需要指出的是现在大多数的NAT是Cone类型的,这也是将来传送数字音频和视频信号的INTERNET发

展方向,所以用户在未来可能遇到的更多NAT不会是一定需要通讯隧道情况的NAT。
下面用列表说明一下几种情况:假设ab节点需要通通讯


节点 防火墙类型 节点 防火墙类型 沟通方式
a 公网-> bCone NAT(除Port Restricted NAT) 直接联系
a 公网-> bSymmetric NAT 和 Port Restricted NAT直接联系
a 公网-> b公网 直接联系
a Cone NAT
(除Port
Restricted NAT)-> bCone NAT(除Port Restricted NAT) 可联系

a Cone NAT
(除Port
Restricted NAT)-> bSymmetric NAT 和 Port Restricted NAT 需要隧道支持

a Symmetric NAT
Port
Restricted NAT-> bSymmetric NAT 和 Port Restricted NAT 需要隧道支持