首页/云/云网络与负载均衡速查/NAT 网关 DNAT 端口映射

NAT 网关 DNAT 端口映射

DNAT 把公网 EIP 的端口映射到内网实例端口:外部访问 EIP 的公网端口会被转发到指定实例的私网端口,实现「隐藏公网 IP 也能对内提供服务」。域名证书按对外服务域名准备即可。

DNAT 端口映射怎么用

DNAT 把公网 EIP 上的端口映射到内网实例的私网端口:外部访问这个公网端口时,NAT 网关会把请求转发到指定内网目标,实例本身不需要公网 IP。这样既能对内提供服务,又隐藏了真实源站;域名与证书按对外使用的服务域名准备即可,目标实例的私网地址对用户不可见。

基本信息

映射粒度端口级:公网端口 → 私网 IP : 私网端口
协议TCP / UDP,按需选择
排他性同一 EIP 的同一端口只能映射到一个内网目标
方向只解决入方向;实例主动出网仍需 SNAT 或直接绑 EIP
前置条件安全组需放行该私网端口,来源可为公网地址
适用场景隐藏源站、复用少量公网 IP 提供服务

典型使用场景

  • 自建服务对外提供访问,但不想给实例直接绑公网 IP
  • 多个内部服务复用少量公网 IP,用不同端口区分
  • 临时对外开放在用端口做联调,用完即删映射
  • 非 HTTP 协议服务(如自建 TCP 服务)对外暴露
  • 迁移期间把公网端口指向新实例,实现无感切换

创建 DNAT 条目

创建 DNAT 条目
NAT 网关 → DNAT 管理 → 创建 DNAT 条目
  公网端口:443
  私网端口:8443
  私网 IP:10.10.1.20
  EIP:选择承载该映射的弹性公网 IP
验证:nc -zv -w 3 <EIP> 443   或   curl -I https://<域名>/

排查与对照

现象常见原因
外部访问超时删除了映射条目,或安全组未放行私网端口
创建条目失败该 EIP 的这个公网端口已被其他映射占用
映射后访问到错误服务私网 IP 或端口填错,命中了别的实例
实例能出网但外部进不来DNAT 只解决入向,需另行确认映射是否存在
DNAT 与负载均衡的选择:只需要把自己维护的单个实例暴露出去用 DNAT 就够;需要多台后端分摊流量与健康检查,应优先选用负载均衡。
对外暴露的端口应尽量少而明确,映射到管理端口(如 22、3389)时务必把安全组来源收窄到固定网段,否则等于把主机管理入口直接放到公网。

易错点

  • 目标公网端口已被其他映射占用时创建失败,先核对现有条目再动手
  • 映射完成后未放行安全组,外部访问超时,容易误判为 NAT 配置没生效
  • 只做了 DNAT 就以为实例能访问公网:入向映射与出网能力是两件独立的事
  • 私网目标实例重建后地址变化,映射条目仍指向旧地址,外部访问指向了一台不存在的机器

数据来源与参考

  • 阿里云 NAT 网关文档(DNAT)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌