LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

既然知道了内网穿透原理,下面来了解一下NAT穿透!

admin
2026年1月9日 11:20 本文热度 274

NAT穿透原理详解

NAT(Network Address Translation网络地址映射)也叫做网络掩蔽或者IP掩蔽,主要是将私有IP地址转换成可以在公网使用的公网IP地址。而能够进行映射的网络装置被称为NAT路由

在讲解NAT穿透之前我们先来想想为什么需要NAT呢?

要想回答这个问题就不得不了解IPv4与IPv6的区别了。IPv4中规定IP地址长度为32,即有2^32-1个地址,而IPv6中IP地址的长度为128,即有2^128-1个地址。夸张点说,如果IPv6被广泛应用以后,全世界的每一粒尘埃都分配一个IP地址都够用。回到我们的问题,答案应该清楚了,那就是为了解决IP地址不够而诞生的。通过公网IP地址与端口映射到私网机器的IP地址与端口。这样就能通过少量的公有IP地址来代表较多的私有IP地址,有助于减缓IPv4地址的耗尽问题。放张图大家来直观地了解下。

1.NAT如何实现穿透?

两台客户端通过网关穿透总共有16种情况,但我们只需要考虑3种情况即可。

  1. 任意一端为完全锥形NAT。

  2. 两端均为限制锥形NAT。

  3. 两边均为对称NAT或者一端为限制锥形NAT一端为对称NAT。

1.1 穿透完全锥形NAT

在穿透过程中,两端私网机器都是在NAT路由器之下的。两端NAT只要有一方为完全锥型NAT的时候,就是可以穿透的。完全锥形NAT穿透流程如下图所示,NAT1为完全锥形NAT,NAT2为任意NAT

1):私网机器1(192.168.1.3:2341)发送报文给服务器(180.93.45.46:8888)。服务器获取到私网机器1的公网IP地址与端口(112.93.14.56:43891)。

2):服务器收到报文信息后,通知私网机器2(192.168.2.6:6583),通知信息内包含有私网机器1的公网IP地址与端口(112.93.14.56:43891)。

3):私网机器2(192.168.2.6:6583)收到通知信息后直接发送数据给私网机器1的公网IP地址与端口(112.93.14.56:43891),此时私网机器1就能收到私网机器2发送的报文数据,并且能获取到私网机器2的公网IP地址与端口(iAddr:iPort)。

4):私网机器1回发报文信息给私网机器2的公网IP地址与端口(iAddr:iPort),此时私网机器2也能收到私网机器1回发的报文数据,穿透结束。

1.2穿透限制锥形NAT

限制锥型NAT的特点是限制了其他公网机器报文数据传输。如果这里采用上边穿透完全锥型NAT的穿透步骤来穿透限制锥型NAT,那么在步骤3时私网机器1不能收到私网机器2发送的报文数据,穿透失败。下边来讲限制锥形NAT的穿透,穿透流程如下图所示。

1):私网机器1(192.168.1.3:2341)发送报文给服务器(180.93.45.46:8888),服务器获取到私网机器的公网IP地址(112.93.14.56:43891)。

2):然后服务器发送通知报文给私网机器2(192.168.2.6:6583),通知报文中包含私网机器1的公网IP地址(112.93.14.56:43891)。

3):私网机器2发送报文数据到私网机器1的公网IP地址(112.93.14.56:43891)。由于NAT1是限制锥型NAT,此时私网机器1不能收到报文数据。

4):私网机器2进行完步骤3以后,立即发送报文给服务器(180.93.45.46:8888),要求私网机器1发送数据给私网机器2的公网IP地址。

5):服务器通知私网机器1,通知信息中包含私网机器2的公网IP地址(180.20.198.42.9681)。

6):私网机器1接到服务器通知后发送报文数据给私网机器2的公网IP地址。由于步骤3中私网机器2给私网机器1的公网IP地址发送过报文,此份报文此时会被NAT2的路由器认为是上述步骤3的回复,所以此步骤会被允许通过,此时穿透NAT2成功。

7):私网机器2回发报文给私网机器1,此时穿透了NAT1。穿透结束。

1.3穿透对称NAT

对称NAT的特点是每一个不同公网机器的通信,都会被分配不同的映射端口(NAT会产生两条记录),如果参照限制锥型NAT的穿透流程,则不能准确地知道步骤3所产生的公网IP地址与端口,不知道通知对方的公网IP与端口,那就基本靠技术性的猜测了。对称穿透流程如下图所示,NAT1为限制锥型NAT,NAT2为对称NAT。

1):私网机器1(192.168.1.3:2341)发送报文数据给服务器(180.93.45.46:8888),请求与私网机器2进行透传。

2):服务器(180.93.45.46:8888)发送通知信息给私网机器2。通知信息内含私网机器1的公网IP地址(112.93.14.56:43891)。

3):私网机器2收到通知信息,发送报文数据给私网机器1的公网IP地址。此时由于NAT1为限制锥形NAT,数据是不被允许进入私网的。同时由于NAT2为对称NAT,所以会在此次报文发送过程中,会被产生新的映射记录,分配新的公网地址与端口(iAddr:iPort)。

4):私网机器2进行完步骤3以后,发送报文信息给服务器的另一个端口8889,此步骤也会在路由器上产生一条新的映射记录,分配公网地址与端口(mAddr:mPort)。服务器同时也获取到新的公网地址与端口(mAddr:mPort)。

5):服务器(180.93.45.46:8889)发送通知信息给私网机器1。通知信息内包含步骤4产生的新记录公网地址与端口(mAddr:mPort)。此时可以根据iPort与mPort产生的时间间隔很短来判断iPort的值,即需要穿透的端口。为了判断的准确性,可以在产生mPort之前也加上一次新记录,即在步骤3以前让NAT路由器产生一条记录,这样会大大地提升穿透的概率。

6):根据mPort的值,来猜测iPort的值,发送报文信息给私网机器2的公网地址与端口(mAddr:mPort)。如果是准确的mPort值,则能够穿透NAT2。

7):收到穿透报文信息后,回复报文信息,穿透结束。


该文章在 2026/1/9 11:20:22 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved