1. 什么是NAT?
- 定义:NAT 是一种网络技术,用于在私有网络(如家庭或企业局域网) 与 公共网络(如互联网) 之间转换IP地址。它允许使用私有IP地址的设备通过一个(或多个)公共IP地址访问互联网。
- 核心作用:
- 解决IPv4地址短缺问题(多个设备共享1个公网IP)。
- 隐藏内部网络结构,提升安全性。
- 简化网络管理(内网使用灵活私有地址)。
2. NAT的常见分类
根据实现方式和功能,NAT主要分为以下类型:
类型 | 说明 |
---|---|
静态NAT | 一对一固定映射(1个私有IP ↦ 1个公网IP),常用于服务器对外提供服务。 |
动态NAT | 多个私有IP动态共享一个公网IP池(无固定绑定)。 |
PAT/NAT重载 | 最常用类型,通过端口号区分连接(多个私有IP ↦ 1个公网IP + 不同端口)。 |
SNAT | 源地址转换(内网设备访问外网时修改源IP)。 |
DNAT | 目的地址转换(外网访问内网服务时修改目标IP)。 |
3. DNAT与SNAT的区别
特性 | SNAT(Source NAT) | DNAT(Destination NAT) |
---|---|---|
转换对象 | 修改数据包的源IP地址 | 修改数据包的目标IP地址 |
数据流向 | 内网设备 → 外网(出站流量) | 外网用户 → 内网服务器(入站流量) |
典型场景 | 内网PC访问互联网 | 互联网用户访问内网服务器(如Web服务器) |
修改位置 | 通常在路由器/防火墙的出口执行 | 通常在路由器/防火墙的入口执行 |
配置关键词 | masquerade (Linux)、source-nat (防火墙) | port-forwarding 、virtual-server |
工作流程对比
-
SNAT示例:
PC(192.168.1.10) → 路由器(SNAT) → 目标网站
网站看到的是路由器的公网IP(如203.0.113.1
)。 -
DNAT示例:
外网用户 → 路由器(DNAT) → 内网服务器(192.168.1.100:80)
用户访问的是路由器的公网IP,但被转发到内网服务器。
4. 应用实例
SNAT 典型场景
-
家庭网络上网
- 所有手机/电脑通过路由器的单一公网IP访问互联网。
- 路由器自动执行SNAT(端口复用),无需用户配置。
-
企业内网共享出口
- 成百上千员工PC通过防火墙的SNAT功能共用少量公网IP访问外网。
DNAT 典型场景
-
远程访问内网服务器
- 将公网IP的 TCP 80端口 映射到内网Web服务器(
192.168.1.100:80
)。 - 用户访问
http://公网IP
→ 路由器DNAT → 内网服务器。
- 将公网IP的 TCP 80端口 映射到内网Web服务器(
-
游戏主机/NAS端口开放
- 将公网IP的 UDP 3074端口 映射到内网Xbox主机,解决NAT严格类型问题。
-
云服务器反向代理
- 公有云负载均衡器将用户请求(目标IP)转发到后端私有子网的虚拟机。
5. 总结对比表
场景 | SNAT | DNAT |
---|---|---|
主要目的 | 隐藏内网结构,共享公网IP | 暴露内网服务到公网 |
方向 | 出站(Outbound) | 入站(Inbound) |
配置位置 | 网关的出接口/防火墙策略 | 网关的入接口/端口转发规则 |
影响的数据包字段 | 源IP + 源端口 | 目标IP + 目标端口 |
💡 关键记忆点:
- SNAT:内网设备主动“出去”时改源地址(Source)。
- DNAT:外部流量“进来”时改目标地址(Destination)。
通过NAT技术,有限的IPv4地址得以高效复用,同时平衡了安全性与服务可达性。实际应用中常结合SNAT和DNAT(如企业防火墙同时配置上网共享和服务器发布)。