文档

ECS实例配置公网NAT网关的DNAT条目后无法被公网访问

更新时间:

问题描述

阿里云公网NAT网关支持DNAT功能,将公网NAT网关上的公网IP通过端口映射或IP映射两种方式映射给ECS实例使用,使ECS实例能够对外提供公网访问服务。如果您的ECS实例配置NAT网关的DNAT条目后,无法被公网访问,您可参考本文进行操作。

问题原因

造成该问题的原因如下:

  • 安全组不允许公网访问DNAT条目中配置的ECS实例的私网端口。

  • 路由表中没有目标网段为0.0.0.0/0,下一跳为公网NAT网关的自定义路由条目。

解决方案

请根据实际的问题原因,选择以下对应的解决方法:

  • 问题原因一的解决方法:

    请确认ECS实例中的安全组是否允许公网访问DNAT条目中配置的ECS实例的私网端口。如果安全组不允许ECS实例的私网端口,请开放该端口,具体操作,请参见添加安全组规则

    您可以在同VPC内的其他ECS实例执行telnet <ECS实例私网IP地址> <私网端口>命令,确认DNAT条目中配置的ECS实例的私网端口是否可被访问。

    • 系统显示类似如下,表示DNAT条目中配置的ECS实例的私网端口可被访问。

      Connected to <ECS实例私网IP地址>

    • 系统显示类似如下,表示DNAT条目中配置的ECS实例的私网端口不可被访问。

      unable connect to remote host: Connection timed out

    如果ECS实例的私网端口不可被私网访问,则也不可被公网访问。

  • 问题原因二的解决方法:

    因为DNAT条目中配置的ECS实例被访问后回复响应报文时,也需要有去往NAT网关的路由。因此,请确认您使用的系统路由表或自定义路由表中是否有上述自定义路由条目,如果没有,请手动进行添加。具体操作,请参见添加和删除路由表中的路由条目

    适用于

    • 公网NAT网关

    • 本页导读 (1)
    文档反馈