You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

私有子网内EC2实例无法连接互联网的问题排查求助

排查私有子网EC2通过NAT Gateway无法访问互联网的问题

咱一步步来排查你可能漏掉的配置细节,AWS网络配置经常有看起来做了但其实没到位的地方:

1. 先确认NAT Gateway本身能正常联网

  • 检查NAT Gateway的状态:在AWS控制台的NAT Gateway页面,确保它的状态是available,而且已经分配了公有IP(创建时需勾选“分配弹性IP”才会有)
  • 验证NAT所在公有子网的路由表:这个公有子网的路由表必须有0.0.0.0/0 -> Internet Gateway的规则——毕竟NAT自己得先能连上互联网,才能给私有子网做转发

2. 私有子网路由表的绑定与规则验证

  • 确认私有子网的路由表中,0.0.0.0/0的目标确实指向你的Public Nat Gateway(别选错成其他NAT或者IGW)
  • 重点检查:路由表和私有子网是不是正确关联了!很多时候加了路由但忘了绑定子网,等于白配置(可以在VPC控制台的路由表页面,查看“关联的子网”列表里有没有你的私有子网)
  • 登录私有子网的EC2实例,用命令查看本地路由:
    route -n  # Linux系统
    # Windows系统用
    Get-NetRoute
    
    确认默认路由(Destination为0.0.0.0/0)的网关是NAT Gateway的私有IP

3. 安全组的出站规则不能忽略

  • 私有子网EC2的安全组:必须允许出站流量到0.0.0.0/0——至少要开放ICMP(用于ping)、TCP 80/443(用于网页访问)、UDP 53(用于DNS解析),直接全开0.0.0.0/0最省事,后续再按需收紧
  • 如果给NAT Gateway配置了安全组(默认NAT可不关联,但如果加了),要允许来自私有子网CIDR的所有入站流量(因为NAT的响应需要返回给私有子网实例)

4. 网络ACL(NACL)的双向规则要配全

NACL是无状态的,入站和出站都得对应配置,不像安全组是有状态的:

  • 私有子网的NACL:
    • 入站规则:允许来自NAT Gateway所在CIDR的响应流量(比如ICMP echo-reply、TCP/UDP的established/related状态)
    • 出站规则:允许所有流量到0.0.0.0/0
  • 公有子网的NACL:
    • 入站规则:允许来自私有子网CIDR的请求流量
    • 出站规则:允许所有流量到0.0.0.0/0(供NAT Gateway使用)

5. EC2实例本身的网络配置检查

  • 确认私有子网EC2没有手动设置静态路由:比如Linux下/etc/sysconfig/network-scripts/里的配置,或者Windows的静态路由,这些会覆盖VPC路由表的规则
  • 检查DNS配置:在EC2控制台查看实例的“DNS服务器”是否为VPC默认值(通常是VPC主网段+2,比如VPC是10.0.0.0/16的话就是10.0.0.2)。如果手动修改过DNS,可能导致无法解析域名。可以先尝试ping公网IP(比如ping 8.8.8.8),如果能通但ping域名不通,那就是DNS的问题

6. 排查账号级别的限制

  • 确认你的AWS账号没有组织级的SCP(服务控制策略)禁止公网访问,或者VPC没有其他网络策略限制流量

先从这些点查起,大概率能找到问题所在!

内容的提问来源于stack exchange,提问作者Brijesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 07:17:33