For the complete documentation index, see llms.txt. This page is also available as Markdown.

NAT 网关最佳实践

以下建议按您希望保护的目标分组:容量与成本SNAT 路径和 DNAT 路径。最后附有故障排查检查清单。

容量与成本

CU 计费由每小时峰值并发连接数峰值 CPS 中的较大值驱动(参见计费)。同样这两个指标也限制了实际性能,因为每个 EIP 的临时端口范围是有限的。同时优化两者。

  • 根据峰值并发连接数规划 EIP 池大小。 每个 EIP 支持有限数量的并发连接。估算峰值并发数,除以每个 EIP 的上限,再绑定相应数量的 EIP(留有余量)。在多个 EIP 间分散流量可按比例扩展可用端口范围。

  • 关注 CPS,而非仅仅关注并发数。 短连接工作负载 — 批处理任务、爬虫、轮询、每请求 HTTP 客户端 — 通常先触及 CPS 上限。如果 CPS 持续是较高的 CU 维度,请添加 EIP、在多个网关间分散负载,或通过连接池进行整合。

  • 跟踪哪个维度驱动账单。 打开网关的性能标签页,对比并发连接数CPS 图表。主导维度决定了您的费用,也是将触及性能上限的那个维度。

SNAT

  • 仅为需要出口的子网配置路由。 数据库层、内部队列和合规范围内的子网根本不应有指向网关的默认路由。使用网关的子网选择功能(而非所有子网),并将 SNAT 条目的范围限定为匹配的 CIDR。

  • 每次变更后验证路由。 创建网关或更改子网关联后,打开 VPC → 路由表,按类型 NAT 网关过滤,确认每个覆盖子网都有指向网关的默认路由,然后再切换实时流量。

  • 避免 SNAT 条目重叠。 源范围重叠的条目将被拒绝。相较于多个相互交错的较小条目,优先为每个源范围创建一条范围明确的条目。

DNAT

  • 对管理访问使用非标准公网端口。 例如将 SSH 映射为 2222 → 22,将 RDP 映射为 33890 → 3389。自动扫描工具主要针对默认端口;更换公网面向端口可在不改变实例配置的情况下减少未经请求的连接尝试。

  • 为每条 DNAT 条目配合源 IP 过滤。 DNAT 决定哪个端口访问哪个私有 IP,但不限制谁能连接。对于敏感端点,请在目标实例上添加安全组规则,仅允许已知源 CIDR。

  • 明确指定协议。 端口映射条目请使用 tcpudpany 仅保留给有意将所有协议转发到私有 IP 且不指定端口的条目 — 不要将其用作管理端口的"通用"默认值。

  • 删除已停用服务的 DNAT 条目。 未使用的条目会继续接受入站连接尝试。定期审查 DNAT 列表,删除所有不再使用或已迁移至负载均衡器后端的条目。


故障排查

现象
排查方向

创建 SNAT 条目后实例无法访问互联网

(1)实例的子网已关联到 NAT 网关。(2)VPC 路由表显示该子网有 NAT 网关默认路由。(3)SNAT 条目匹配该子网或 CIDR,且引用了至少一个可用的 EIP。

SNAT 条目创建失败,提示重叠错误

另一条 SNAT 条目已覆盖相同的源范围。缩小新条目的范围或更新现有条目 — 不要创建第二条重叠的条目。

外部客户端能连接,但后端从未收到流量

(1)DNAT 条目的内部 IP 和端口是否正确,服务是否正在监听。(2)目标实例安全组是否允许来自预期源的内部端口入站流量。(3)DNAT 条目中的协议是否与客户端使用的协议一致。

连接成功,但延迟高或吞吐量低

打开性能标签页,对比并发连接数CPS。如果 CPS 是较高的 CU 维度,请添加 EIP 或将工作负载拆分到多个网关,以缓解每个 EIP 的端口压力。

网关卡在 错误 状态

检查事件日志。最常见原因:活跃条目引用的 EIP 已被释放,或创建时存在资源冲突。如果重建后未能恢复,请联系支持团队

最后更新于