NAT 类型详解以及如何查看自己的 nat 类型

四种NAT类型

NAT 可以分为四种类型:

  1. 完全锥形NAT(Full Cone NAT)

完全锥形NAT最简单,也是最灵活的一种。它会为内部网络中的每个主机分配一个公共IP地址和端口号,并且允许从任何外部网络地址的任何端口与内部主机通信。一旦内部主机首次向外部主机发送数据,完全锥形NAT就会将源IP和端口映射到公共IP和端口,以便外部主机可以回复。

  1. 地址限制锥形NAT(Address Restricted Cone NAT)

地址限制锥形NAT在完全锥形NAT的基础上增加了限制。它要求内部主机只能与之前已经与其通信过的外部主机进行通信。也就是说,在内部主机与外部主机建立连接之前,外部主机必须已经向内部主机发送过数据包。

  1. 端口限制锥形NAT(Port Restricted Cone NAT)

与地址限制锥形NAT类似,端口限制锥形NAT还要求外部主机使用相同的端口号与内部主机进行通信。也就是说,在内部主机与外部主机建立连接之前,外部主机必须已经向内部主机发送过数据包,并且使用相同的源端口号。

  1. 对称型NAT(Symmetric NAT)

对称型NAT是最严格的一种。它会为每个不同的目标IP地址和端口组合分配一个唯一的映射,并且只允许与该目标地址和端口进行通信。这意味着,当内部主机与不同的外部主机进行通信时,对称型NAT会为每个连接创建一个新的映射。因此,对称型NAT会限制内部主机能够与多个外部主机同时建立连接。

关于 P2P,不同 NAT 类型的穿透性。

649e6f214f472

可以看见只有两种情况无法打通。

如何查看NAT类型

使用工具 pystun 工具即可查看 nat 类型,项目地址:https://github.com/jtriley/pystun。

需要有 python 环境,才能进行安装。

pip install pystun

当然你也可以直接运行 docker 命令进行查看。

docker run -it --rm --network=host smilence86/pystun
阅读剩余
THE END