NAT 网关怎么用:让私网 ECS 共享一个出口的实践笔记

举报
yd_291272928 发表于 2026/11/12 08:19:13 2026/11/12
【摘要】 最近搭业务环境时遇到一个典型问题:应用和数据库都放在私网子网,没有公网 IP,但又要拉镜像、打补丁、调第三方接口。给每台 ECS 都绑 EIP 不仅贵,还把内网机器直接暴露在公网。最后加了一个 NAT 网关,私网 ECS 共用一个 EIP 出网,发布服务再用 DNAT 单独放行。一、为什么私网 ECS 需要 NAT私网 ECS 只有内网 IP,默认访问不了公网。但“不出网”几乎不可能:打补丁...

最近搭业务环境时遇到一个典型问题:应用和数据库都放在私网子网,没有公网 IP,但又要拉镜像、打补丁、调第三方接口。给每台 ECS 都绑 EIP 不仅贵,还把内网机器直接暴露在公网。最后加了一个 NAT 网关,私网 ECS 共用一个 EIP 出网,发布服务再用 DNAT 单独放行。

一、为什么私网 ECS 需要 NAT

私网 ECS 只有内网 IP,默认访问不了公网。但“不出网”几乎不可能:打补丁要联网,拉镜像要联网,调短信、支付接口也要联网。与其每台都绑 EIP,不如在出口放一个 NAT 网关:私网里的机器共用一个 EIP 出去,机器本身不暴露在公网。

二、SNAT 与 DNAT 的分工

出方向看 SNAT。私网 ECS 访问公网时,源地址被替换成网关绑定的 EIP,多台 ECS 共用这一个公网地址出网。

入方向看 DNAT。公网访问私网服务时,目标地址替换成内网 ECS 的私网地址,按端口转发,比如 EIP 的 8080 映射到某台 ECS 的 80 端口。

SNAT 管出,DNAT 管进。

三、配置顺序:子网路由指向 NAT

踩过的一个坑:SNAT 配了、EIP 绑了,ECS 还是上不了网,问题出在路由上:子网流量根本没走到 NAT 网关。正确顺序是:

1、先建 NAT 网关,放在公网子网里,绑定一个弹性公网 IP。
2、建 SNAT 规则:整个子网出网选“子网”,个别 ECS 出网选“ECS”。
3、关键一步:去私网子网关联的路由表里,加默认路由 0.0.0.0/0,下一跳指向 NAT 网关。
4、需要对外发布服务时,再建 DNAT 规则,写清协议、公网端口和内网目标端口。
5、最后检查安全组:出方向放通要访问的目标,入方向只放通 DNAT 用到的端口。

第三步最容易漏:网关配好不等于流量会过去,没有指向 NAT 网关的默认路由,包走到子网网关就不知道往哪送。

四、上线前检查清单

按这份清单逐项过一遍再交差:

1、私网子网的路由表里有没有 0.0.0.0/0 指向 NAT 网关。
2、SNAT 规则覆盖的范围是不是要上网的机器,别多也别少。
3、网关上 EIP 的带宽够不够:多台机器共享一个出口,带宽大家一起用。
4、DNAT 的每个公网端口只映射一台内网机器,别出现端口冲突。
5、安全组两边都查:出方向允许 ECS 访问目标,入方向只对 DNAT 端口放行。
6、用域名验证一次 DNS 和连通性,业务实际调一次接口、拉一次镜像确认走得通。

NAT 网关本身不复杂,也不用改业务代码,就是把出口收敛到一个点上。按这个顺序做对了,私网 ECS 共享出口上网就是一件稳定省心的事。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。