首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >SNAT 和 DNAT 区别

SNAT 和 DNAT 区别

作者头像
jack.yang
修改2026-02-27 11:27:06
修改2026-02-27 11:27:06
850
举报

SNAT(Source Network Address Translation,源地址转换)和 DNAT(Destination Network Address Translation,目的地址转换)是 NAT 网关的两种核心功能。

它们的根本区别在于修改的是数据包里的“源 IP”还是“目的 IP”,以及由此决定的流量方向和应用场景。

简单的一句话总结:

  • SNAT:让内网机器主动访问外网(内 →→ 外)。
  • DNAT:让外网用户主动访问内网机器(外 →→ 内)。

1. 深度解析:SNAT (源地址转换)

  • 全称:Source Network Address Translation
  • 修改对象:数据包的 源 IP 地址 (Source IP)。
  • 流量方向:内部→→ 外部 (Outbound)。 
  • 工作原理:
    1. 内网服务器(私网 IP,如 192.168.1.5)发起请求访问互联网(如 www.google.com)。
    2. 数据包到达 NAT 网关。
    3. NAT 网关将数据包的源 IP 从 192.168.1.5 替换为 NAT 网关的公网 IP(如 203.0.113.1)。
    4. 互联网服务器收到请求,认为是 203.0.113.1 发来的,于是回复给这个公网 IP。
    5. NAT 网关收到回复,根据记录表,将目的 IP 还原为 192.168.1.5,转发给内网服务器。
  • 核心目的:
    • 节省公网 IP:多台内网服务器可以共享一个公网 IP 上网。
    • 隐藏内网结构:外部只能看到 NAT 网关的 IP,不知道内网有多少台机器、IP 是多少,提高安全性。
    • 单向访问控制:允许内网主动连外网,但阻止外网主动连内网(因为没有映射关系,外网发起的包会被丢弃)。
  • 典型场景:
    • 私有子网中的数据库服务器需要下载系统补丁。
    • 后端应用服务器需要调用微信支付/支付宝 API。
    • 员工办公网访问互联网。

2. 深度解析:DNAT (目的地址转换)

  • 全称:Destination Network Address Translation
  • 修改对象:数据包的 目的 IP 地址 (Destination IP)。
  • 流量方向:外部 →→ 内部 (Inbound)。
  • 工作原理:
    1. 互联网用户发起请求,访问 NAT 网关的公网 IP(如 203.0.113.1)的特定端口(如 8080)。
    2. 数据包到达 NAT 网关。
    3. NAT 网关查找配置规则,发现“访问 203.0.113.1:8080 的请求应转发给内网 192.168.1.5:80”。
    4. NAT 网关将数据包的目的 IP 从 203.0.113.1 替换为 192.168.1.5,目的端口从 8080 替换为 80
    5. 内网服务器收到请求,处理后将响应发回给 NAT 网关。
    6. NAT 网关将响应的源 IP 还原为公网 IP 203.0.113.1,返回给用户。
  • 核心目的:
    • 端口映射:将公网 IP 的某个端口映射到内网服务器的某个端口。
    • 暴露服务:让没有公网 IP 的内网服务器能被互联网访问,同时隐藏真实的内网 IP。
  • 典型场景:
    • 将公网 IP 的 80 端口映射到内网 Web 服务器的 80 端口,提供网站服务。
    • 将公网 IP 的 3389 端口映射到内网 Windows 服务器的远程桌面端口,方便运维管理(需注意安全风险)。
    • 游戏服务器部署在内网,通过 DNAT 让玩家连接。

3. 核心区别对比表

image
image

4. 通俗类比:公司前台

想象一家大公司(VPC),员工坐在办公室里(内网服务器),外面是街道(互联网)。公司只有一个对外的总机号码(NAT 网关公网 IP)。

  • SNAT 场景(员工打电话出去):
    • 员工 A(内网 IP)想给外面的客户打电话。
    • 他不能直接用分机号打出去,必须通过前台(NAT 网关)。
    • 前台用公司总机号码帮员工拨出电话。
    • 客户看到的是公司总机号码,不知道是哪个员工打的。
    • 客户回电只能打到总机,如果前台没有记录,无法转接给特定员工(外部无法主动发起)。
    • 这就是 SNAT:内网主动访问外网,隐藏内部身份。
  • DNAT 场景(客户打电话进来找特定部门):
    • 公司规定:拨打总机号码按 1 转销售部(内网服务器 A),按 2 转技术部(内网服务器 B)。
    • 外面的客户拨打总机号码,并输入分机号(端口映射)。
    • 前台(NAT 网关) 接到电话,根据规则,将电话转接到具体的内部分机(修改目的地址)。
    • 这样,客户不需要知道销售部的直接分机号,只要知道总机和规则就能联系到内部。
    • 这就是 DNAT:外网主动访问内网,通过映射规则找到具体目标。

5. 在云厂商中的实际应用

在阿里云、AWS、腾讯云等控制台中:

  • 创建 NAT 网关时:通常默认开启或配置 SNAT 条目(让子网能上网)。
  • 配置 DNAT 时:需要手动添加 DNAT 条目(端口映射),指定 公网IP:端口 映射到 私网IP:端口
  • 注意:为了安全,生产环境中通常尽量少用 DNAT 直接暴露单个 ECS。如果需要对外提供服务,最佳实践是使用 负载均衡 (SLB/ELB) + NAT 网关 (仅 SNAT) 的组合,或者将 Web 服务器放在公有子网配合安全组,而数据库等核心资产永远只配 SNAT,不配 DNAT。

总结

  • 想让你的服务器去访问百度、谷歌、API 接口? →→ 用 SNAT。
  • 想让互联网用户来访问你的网站、游戏、数据库? →→ 用 DNAT(但要注意安全加固)。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-02-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 深度解析:SNAT (源地址转换)
  • 2. 深度解析:DNAT (目的地址转换)
  • 3. 核心区别对比表
  • 4. 通俗类比:公司前台
  • 5. 在云厂商中的实际应用
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档