news 2026/4/30 1:09:23

NAT工作机制(中间人为请求和响应搭桥牵线)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
NAT工作机制(中间人为请求和响应搭桥牵线)

NAT(Network Address Translation,网络地址转换)是解决 IPv4 地址不足的核心技术,它让多个内网设备共用一个公网 IP 访问互联网,同时隐藏内网地址,提升安全性。下面用通俗的方式拆解它的工作流程:


一、核心原理:“地址翻译官”

NAT 设备(通常是路由器 / 防火墙)会维护一张NAT 转换表,记录内网地址与公网地址 / 端口的映射关系,实现内网 ↔ 公网的双向地址转换。


二、核心工作流程(以常见的 PAT/NAPT 为例)

PAT(Port Address Translation,端口地址转换)是最常用的 NAT 模式,也是我们家里路由器的工作方式,它通过端口号区分不同内网设备的连接,实现 “多对一” 映射。

1. 内网设备访问外网(出方向流程)

  1. 内网主机发送请求内网主机(IP:192.168.1.10:1025)访问外网服务器(IP:100.100.100.100:80),数据包源 IP / 端口为192.168.1.10:1025,目的 IP / 端口为100.100.100.100:80

  2. NAT 路由器接收并转换路由器收到数据包后,查询 NAT 转换表:

    • 若没有映射记录,就为这个连接分配一个公网端口(比如60001)。
    • 在 NAT 表中添加一条记录:192.168.1.10:1025 ↔ 公网IP:60001
    • 修改数据包的源 IP / 端口为公网IP:60001,目的 IP / 端口保持不变。
  3. 转发修改后的数据包路由器将修改后的数据包发送给外网服务器,服务器看到的源地址只有路由器的公网 IP,完全不知道内网主机的真实地址。


2. 外网服务器响应请求(入方向流程)

  1. 外网服务器返回响应服务器收到请求后,向公网IP:60001发送响应数据包,目的 IP / 端口为公网IP:60001,源 IP / 端口为100.100.100.100:80

  2. NAT 路由器接收并反向转换路由器收到响应数据包后,查询 NAT 转换表:

    • 找到公网IP:60001对应的内网映射记录:192.168.1.10:1025
    • 修改数据包的目的 IP / 端口为192.168.1.10:1025,源 IP / 端口保持不变。
  3. 转发到内网主机路由器将修改后的响应数据包转发给内网主机192.168.1.10,主机收到响应,完成一次通信。


三、NAT 转换表的核心作用

NAT 表是整个机制的核心,它的每条记录包含:

表格

字段作用
内网地址 / 端口内网主机的真实地址
公网地址 / 端口NAT 分配的公网映射地址
目的地址 / 端口通信的外网服务器地址
协议类型TCP/UDP/ICMP
超时时间空闲一段时间后自动删除映射记录,释放公网端口

四、常见 NAT 模式对比

表格

模式特点适用场景
静态 NAT一对一固定映射,一个内网 IP 对应一个公网 IP内网服务器对外提供服务(如网站)
动态 NAT多对多映射,内网 IP 从公网地址池中动态分配企业内网批量访问外网
PAT/NAPT多对一映射,通过端口号区分不同连接家庭 / 小型网络,多个设备共用一个公网 IP

五、NAT 的优缺点

✅ 优点

  1. 解决 IPv4 地址不足问题,多个内网设备共用少量公网 IP。
  2. 隐藏内网地址,外网无法直接访问内网主机,提升安全性。
  3. 简化网络管理,内网地址变更不影响公网访问。

❌ 缺点

  1. 破坏端到端通信,外网无法主动访问内网设备(需端口映射 / 打洞解决)。
  2. 部分应用(如 P2P、IPsec VPN)会受 NAT 影响,需要特殊配置。
  3. 路由器需要额外处理地址转换,增加性能开销。

一句话总结 NAT 工作流程

内网设备发请求 → NAT 路由器记录映射、修改源地址 → 外网服务器响应 → NAT 路由器查询映射、修改目的地址 → 转发回内网设备,全程靠 NAT 转换表实现地址的双向翻译。




场景设定

  • 公网服务器:IP203.0.113.100,提供 HTTP 服务(端口 80)
  • NAT 路由器
    • 公网 IP:1.2.3.4
    • 内网网段:192.168.1.0/24
  • 内网主机 A192.168.1.10:1025(浏览器访问网页)
  • 内网主机 B192.168.1.20:2048(也访问同一个网页)

第一阶段:主机 A 发请求到服务器(出方向)

  1. 主机 A 发出请求包

    • 源 IP: 端口:192.168.1.10:1025
    • 目的 IP: 端口:203.0.113.100:80
    • 协议:TCP
  2. 路由器收到包,进行 NAT 转换路由器发现这是内网访问外网,开始处理:

    • 分配一个公网端口60001
    • 在 NAT 表中添加一条记录:192.168.1.10:1025 ↔ 1.2.3.4:60001(目标:203.0.113.100:80
    • 修改数据包的源 IP 和端口:新源:1.2.3.4:60001目的不变:203.0.113.100:80
  3. 路由器把修改后的包发给服务器服务器收到的包:

    • 源:1.2.3.4:60001
    • 目的:203.0.113.100:80服务器完全不知道有192.168.1.10这个地址,只知道是1.2.3.4发来的请求。

第二阶段:主机 B 也发请求到服务器(出方向)

几乎和主机 A 一样,但路由器会分配不同的端口:

  1. 主机 B 发出请求包

    • 源:192.168.1.20:2048
    • 目的:203.0.113.100:80
  2. 路由器收到包,再次 NAT 转换

    • 分配公网端口60002
    • NAT 表新增记录:192.168.1.20:2048 ↔ 1.2.3.4:60002(目标:203.0.113.100:80
    • 修改源地址:新源:1.2.3.4:60002目的不变:203.0.113.100:80
  3. 路由器把包发给服务器服务器收到的包:

    • 源:1.2.3.4:60002
    • 目的:203.0.113.100:80服务器看到两个不同端口(6000160002),就知道是两个不同的连接请求。

第三阶段:服务器响应主机 A(入方向)

  1. 服务器给1.2.3.4:60001发回响应包

    • 源:203.0.113.100:80
    • 目的:1.2.3.4:60001
  2. 路由器收到响应,反向 NAT 转换路由器查 NAT 表:

    • 1.2.3.4:60001对应的是192.168.1.10:1025
    • 修改数据包的目的 IP 和端口:新目的:192.168.1.10:1025源不变:203.0.113.100:80
  3. 路由器把包转发给主机 A主机 A 收到响应,完成这次通信。


第四阶段:服务器响应主机 B(入方向)

  1. 服务器给1.2.3.4:60002发回响应包

    • 源:203.0.113.100:80
    • 目的:1.2.3.4:60002
  2. 路由器收到响应,反向 NAT 转换路由器查 NAT 表:

    • 1.2.3.4:60002对应的是192.168.1.20:2048
    • 修改数据包的目的 IP 和端口:新目的:192.168.1.20:2048源不变:203.0.113.100:80
  3. 路由器把包转发给主机 B主机 B 收到响应,完成这次通信。


关键总结:为什么两个主机的响应不会搞混?

全靠NAT 表 + 端口号

  • 路由器用不同的公网端口(60001/60002)区分不同内网主机的连接
  • 响应回来时,路由器根据端口号查 NAT 表,把包 “送回” 对应的内网主机
  • 服务器只看到一个公网 IP,完全不知道内网有两个不同的设备
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 1:05:28

Linux 5.15 LTS内核新特性与优化解析

1. Linux 5.15 LTS版本概览Linux内核5.15长期支持版(LTS)于2021年10月31日正式发布,这是Linus Torvalds领导下的第21个LTS内核版本。作为一名长期跟踪内核开发的系统工程师,我认为这个版本虽然更新规模中等,但在文件系…

作者头像 李华
网站建设 2026/4/30 1:05:25

TC8测试实战:用Python脚本自动化验证SOME/IP服务发现与RPC(附代码片段)

TC8测试实战:用Python脚本自动化验证SOME/IP服务发现与RPC 在汽车电子系统从传统总线向以太网架构迁移的浪潮中,SOME/IP协议凭借其服务导向特性成为车载通信的核心支柱。但面对TC8测试规范中上百个涉及服务发现、序列化校验的重复性用例,手动…

作者头像 李华
网站建设 2026/4/30 1:01:55

梁高省25cm!“高预应力混杂配筋”HPH构造全解读

在工程以及建筑行业的范围里面,最近“HPH构造”当成了被高度留意的高频率用词。事实上,HPH的全部称呼是“高预应力混杂配筋”(Hybrid Prestressing with High-strength reinforcement),这是一项专门为大跨度空间结构而…

作者头像 李华
网站建设 2026/4/30 1:00:57

【YOLOv11多类别野生动物识别目标检测数据集】

YOLOv11多类别野生动物识别目标检测数据集 📊 数据集基本信息 目标类别: [‘antelope’, ‘badger’, ‘bat’, ‘bear’, ‘bee’, ‘beetle’, ‘bison’, ‘boar’, ‘butterfly’, ‘cat’, ‘caterpillar’, ‘chimpanzee’, ‘cockroach’, ‘cow’…

作者头像 李华