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

AWS私有子网中Ubuntu 16.04实例无法连接互联网求助

排查AWS私有子网Ubuntu 16.04无法连接互联网的问题

嘿,这个问题我之前碰到过类似的,Ubuntu 16.04和Amazon Linux在AWS私有子网里的网络行为差异,大概率是路由表或者DNS配置的问题——毕竟你已经确认安全组、密钥、NAT网关这些和正常实例一致了。咱们一步步来排查:

1. 确认私有子网的默认路由指向NAT网关

虽然你提到同子网的Amazon Linux正常,但还是得先确认Ubuntu实例的路由配置是否正确:

  • 在Ubuntu实例里执行命令:
    ip route show
    
  • 检查输出里是否包含类似 default via <NAT网关内网IP> dev eth0 的默认路由条目。如果没有,说明该子网关联的路由表未配置0.0.0.0/0指向NAT网关,需要到AWS控制台修改对应路由表的规则。

2. 检查DNS配置是否生效

Ubuntu 16.04的DNS解析逻辑和Amazon Linux略有不同,很可能是这里出了问题:

  • 查看当前DNS配置:
    cat /etc/resolv.conf
    
  • 正常情况下应该包含AWS VPC提供的DNS服务器(通常是VPC主IP地址+2,比如VPC网段是10.0.0.0/16,DNS就是10.0.0.2)。如果没有看到这个条目:
    1. 先手动添加测试:
      sudo echo "nameserver 10.0.0.2" >> /etc/resolv.conf
      
      (替换成你自己VPC的DNS地址)
    2. 然后测试域名解析:ping google.com,如果能通,说明是DHCP选项集或VPC DNS配置的问题,需要到AWS控制台确认VPC的「Enable DNS resolution」和「Enable DNS hostnames」是否都设置为Yes。

3. 检查Ubuntu本地防火墙规则

Ubuntu默认启用ufw防火墙,可能会限制出站流量,而Amazon Linux默认没有开启类似的严格规则:

  • 临时关闭防火墙测试:
    sudo ufw disable
    
  • 之后再尝试ping 8.8.8.8或curl google.com,如果能正常连接,说明是ufw规则阻止了流量,需要调整ufw的出站规则。

4. 验证NAT网关的可用性与配置

虽然同子网实例正常,但还是快速确认下NAT网关状态:

  • 到AWS控制台查看NAT网关的详情,确保其状态为available,且绑定了有效的弹性公网IP;
  • 检查NAT网关所在的公有子网是否有正确的路由表(0.0.0.0/0指向互联网网关)。

额外测试:区分IP连通性与域名解析

如果以上步骤都没解决,先测试纯IP连通性:

ping 8.8.8.8
  • 如果IP能ping通,但域名不行:100%是DNS配置问题,回到步骤2深入排查;
  • 如果IP也无法ping通:重点检查路由表和NAT网关的出站权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:33:54