当前位置: 首页 > article >正文

计算机网络——NAT

一、什么是NAT?

NAT(Network Address Translation,网络地址转换) 是一种将 私有IP地址 与 公有IP地址 相互映射的技术,主要用于解决IPv4地址不足的问题。它像一名“翻译官”,在数据包经过路由器或防火墙时修改其IP地址,实现内网设备通过少量公网IP访问互联网。

核心作用:

  • 节省公网IP:多个设备共享一个公网IP。

  • 隐藏内网结构:对外屏蔽内部网络细节,提升安全性。

  • 解决地址冲突:允许不同内网使用相同的私有IP段。


二、什么是NAT转换?

NAT转换是路由器修改数据包IP地址的过程,分为 出站转换(SNAT) 和 入站转换(DNAT)。以下是一个典型流程:

转换步骤(以SNAT为例):

  1. 内网设备发送请求
    PC1(私有IP 192.168.1.10)访问公网服务器 203.0.113.5

  2. 路由器修改源IP
    将源IP从 192.168.1.10 替换为公网IP 203.0.113.1

  3. 服务器响应公网IP
    服务器返回数据到 203.0.113.1

  4. 路由器还原目标IP
    将目标IP 203.0.113.1 还原为 192.168.1.10,转发给PC1。


三、NAT转换的使用场景

场景说明示例
家庭网络多设备(手机、电脑)通过一个公网IP上网家用路由器默认启用NAT
企业内网成百上千员工共享少量公网IP访问外网防火墙部署NAT策略
云服务器为虚拟机分配私有IP,通过NAT访问公网AWS EC2实例使用NAT网关
端口映射将公网IP的特定端口转发到内网服务器(如Web服务)公网IP:80 → 内网服务器:80


四、NAT的种类

1. 静态NAT

  • 特点:一对一固定映射,一个私有IP永久绑定一个公网IP。

  • 用途:托管内网服务器(如Web服务器),支持从公网直接访问。

  • 示例
    内网IP 192.168.1.100 ↔ 公网IP 203.0.113.10

2. 动态NAT

  • 特点:从公网IP池中动态分配IP,映射关系不固定(但同一会话期间不变)。

  • 用途:企业内网多设备临时访问外网。

  • 示例
    内网设备共享公网IP池 203.0.113.1~203.0.113.5

3. NAPT(网络地址端口转换)

  • 特点:多对一映射,通过 端口号 区分不同会话(最常用的NAT类型)。

  • 用途:家庭或小型企业网络,允许多设备共享单一公网IP。

  • 示例

    • PC1:192.168.1.10:1234 → 203.0.113.1:50001

    • PC2:192.168.1.11:5678 → 203.0.113.1:50002


五、NAT和NAPT的区别

对比维度NATNAPT(PAT)
映射方式IP地址一对一映射IP地址 + 端口号多对一映射
公网IP消耗需要与内网设备等量的公网IP仅需1个公网IP
适用场景托管服务器、需要固定公网IP访问的服务普通上网、多设备共享IP
端口复用不支持通过不同端口区分会话
典型设备企业级防火墙、高级路由器家用路由器、小型企业网关
配置复杂度较高(需手动绑定IP)低(自动管理端口映射)

http://www.kler.cn/a/588523.html

相关文章:

  • 【Linux】Socket 编程 TCP
  • 《Python深度学习》第四讲:计算机视觉中的深度学习
  • 在Simulink中将Excel数据导入可变负载模块的方法介绍
  • 工程化与框架系列(30)--前端日志系统实现
  • cursor全栈网页开发最合适的技术架构和开发语言
  • JVM系统变量的妙用
  • 树莓派 连接 PlutoSDR 教程
  • Typedef 与enum的使用
  • 【人工智能基础2】人工神经网络、卷积神经网络基础、循环神经网络、长短时记忆网络
  • [蓝桥杯]花束搭配【算法赛】
  • python+MySQL+HTML实现产品管理系统
  • Ollama+DeepSeek+NatCross内网穿透本地部署外网访问教程
  • Flutter:竖向步骤条,类似查看物流组件
  • 一周学会Flask3 Python Web开发-SQLAlchemy更新数据操作-班级模块
  • Windows 下免安装 PostgreSQL 16、PostGIS 安装
  • Cursor插件市场打不开解决
  • CT重建笔记(四)——三维重建
  • Scheme语言的压力测试
  • 音视频缓存数学模型
  • 计算机视觉--图像数据分析基本操作