对于初学者来说,NAT(Network Address Translation,网络地址转换) 可以理解为“家庭/公司内网与互联网之间的‘翻译官’”——它能让多个内网设备(手机、电脑、电视)共用一个公网IP访问互联网,同时保护内网设备不被外网直接访问。
一、先搞懂:为什么需要NAT?
我们先明确两个关键概念,再理解NAT的必要性:
- 公网IP:互联网上“唯一的门牌号”,比如你家宽带从运营商(电信、联通)申请到的IP(如
202.103.54.12
),所有互联网设备(百度服务器、抖音服务器)都有唯一公网IP。 - 内网IP:家庭/公司路由器分配给内网设备的“内部门牌号”,仅在局域网内有效,比如
192.168.1.2
(手机)、192.168.1.3
(电脑),不同局域网的内网IP可以重复(比如你家的192.168.1.2
和邻居家的192.168.1.2
互不干扰)。
问题核心:全球的公网IP数量有限(IPv4协议下约43亿个),无法给每台设备分配一个公网IP。而NAT的出现,解决了“公网IP不够用”的问题——让一个公网IP对应多个内网IP。
二、NAT的3种核心类型(初学者重点记PAT)
NAT主要分3类,其中 PAT(端口地址转换) 是我们日常生活中最常用的(比如家里的路由器、公司的网关),另外两种在特定场景(如服务器)中使用。
1. 静态NAT(Static NAT):一对一映射
- 原理:将一个固定的内网IP永久映射到一个固定的公网IP(相当于给内网设备分配了“专属公网门牌号”)。
- 适用场景:内网有需要被外网主动访问的设备,比如公司的网站服务器、监控设备。
- 初学者案例:
公司内网有一台Web服务器,内网IP是192.168.0.100
,公司从运营商申请了一个公网IP203.95.67.89
。通过静态NAT设置,将192.168.0.100
与203.95.67.89
绑定。
此时,外网用户在浏览器输入203.95.67.89
,就能直接访问到公司内网的Web服务器。
2. 动态NAT(Dynamic NAT):多对多映射
- 原理:从一个“公网IP池”(比如运营商分配的5个公网IP:
202.103.54.10~202.103.54.14
)中,随机分配一个公网IP给需要访问外网的内网设备,设备断开连接后,公网IP放回池子里供其他设备使用。 - 适用场景:内网设备数量较多,但同时访问外网的设备较少(比如100台内网电脑,同时上网的只有20台,用5个公网IP的池就够了)。
- 初学者案例:
学校机房有50台电脑(内网IP
192.168.2.1~192.168.2.50
),学校申请了3个公网IP(202.98.11.5~202.98.11.7
)作为IP池。
当1号电脑(192.168.2.1
)上网时,动态NAT分配202.98.11.5
;2号电脑上网时,分配202.98.11.6
;3号电脑上网时,分配202.98.11.7
;4号电脑上网时,等前3台有一台断开,再用它释放的公网IP。
3. PAT(端口地址转换):多对一映射(最常用)
-
原理:所有内网设备共用一个公网IP,通过“公网IP+端口号”来区分不同的内网设备(比如公网IP是
202.103.54.12
,手机用202.103.54.12:12345
,电脑用202.103.54.12:54321
)。
这里的“端口号”是一个1~65535的数字,用于标识设备上的不同网络服务(比如浏览网页用80端口,微信聊天用特定端口)。 -
适用场景:家庭、小型公司(几乎所有家用路由器默认用PAT)。
- 初学者案例(最贴近生活):
你家的路由器从电信申请到公网IP
202.103.54.12
,路由器给手机分配内网IP192.168.1.2
,给电脑分配192.168.1.3
。 - 当你用手机刷抖音时:手机发送的数据包“源IP是192.168.1.2”,经过路由器时,NAT会把源IP改成
202.103.54.12
,并随机分配一个端口(比如12345),同时记录“192.168.1.2 ↔ 202.103.54.12:12345”的映射关系。 - 当抖音服务器返回视频数据时:数据的“目标IP是202.103.54.12,目标端口是12345”,路由器收到后,根据之前的映射记录,把目标IP改回
192.168.1.2
,再发给手机。 - 同时电脑用浏览器逛百度时:路由器会给电脑分配另一个端口(比如54321),用
202.103.54.12:54321
与192.168.1.3
绑定,这样抖音和百度的返回数据就能准确发给手机和电脑,不会混淆。
三、NAT的工作流程(用“寄快递”类比,一看就懂)
我们用“手机(内网)访问百度(外网)”的例子,类比NAT的工作步骤,更直观:
步骤 | 实际网络操作 | 寄快递类比 |
---|---|---|
1 | 手机(内网IP:192.168.1.2)发送“访问百度”的数据包,源IP是192.168.1.2,目标IP是百度服务器的公网IP(180.101.49.12)。 | 你(手机)要给“百度公司(外网)”寄快递,快递单上“寄件人地址”写你家的“房间号(内网IP:192.168.1.2)”,“收件人地址”写百度公司的“总地址(公网IP:180.101.49.12)”。 |
2 | 数据包到达路由器(NAT设备),路由器做两件事: ① 把数据包的“源IP”从192.168.1.2改成路由器的公网IP(202.103.54.12); ② 分配一个端口号(比如12345),把“源IP+端口”(202.103.54.12:12345)与手机的内网IP(192.168.1.2)绑定,记在“映射表”里。 |
快递到了小区门口的“快递站(路由器)”,快递员(NAT)把你快递单上的“寄件人地址”改成“小区总地址(公网IP:202.103.54.12)”,并在快递单上贴一个“编号(端口12345)”,同时在本子上记“编号12345 → 2号楼3单元401(手机内网IP)”。 |
3 | 数据包通过互联网到达百度服务器,百度处理后,返回“网页数据”,数据包的“目标IP”是202.103.54.12,“目标端口”是12345。 | 百度公司收到快递后,回复一个“包裹(网页数据)”,包裹上“收件人地址”写“小区总地址(202.103.54.12)”,并标注“编号12345”。 |
4 | 路由器收到百度返回的数据包,查看“映射表”,发现“端口12345”对应手机的内网IP(192.168.1.2),于是把“目标IP”改成192.168.1.2,再把数据包发给手机。 | 快递站收到百度的包裹,看包裹上的“编号12345”,查本子找到对应的“2号楼3单元401(手机)”,把包裹送过去。 |
四、初学者必知的2个NAT关键问题
1. 为什么内网设备不能被外网主动访问?
因为NAT的“单向性”:只有内网设备先主动访问外网,路由器才会记录“内网IP→公网IP+端口”的映射;如果外网设备(比如别人的电脑)主动访问路由器的公网IP,路由器的“映射表”里没有对应的记录,就会直接丢弃数据包,相当于给内网加了一道“防火墙”,保护内网设备不被外网陌生设备攻击。
例外:如果需要外网主动访问内网设备(比如家里的监控、内网游戏服务器),可以手动在路由器上设置“端口映射”(本质是提前在NAT映射表里添加一条固定记录)。比如把监控的内网IP 192.168.1.10
的80端口,映射到路由器公网IP的8080端口,这样外网用户输入“公网IP:8080”就能访问监控。
2. NAT和IPv6的关系?
现在我们用的是IPv4协议,公网IP不够用才需要NAT;而IPv6协议有“2^128个IP地址”(足够给地球上每一粒沙子分配一个IP),未来普及IPv6后,每个设备都能有一个专属公网IP,NAT的“节省公网IP”功能就不再需要了,但NAT的“安全防护”功能可能仍会保留。
五、总结(初学者记3句话)
- NAT的核心作用:节省公网IP(让多个内网设备共用一个公网IP上网)+ 保护内网安全(阻止外网主动访问内网)。
- 最常用的NAT类型是PAT(端口地址转换),家里的路由器默认用它。
- NAT的本质是“IP地址翻译”,通过路由器在“内网IP”和“公网IP”之间转换,并用“端口号”区分不同内网设备。