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

无法通过HTTP/HTTPS连接AWS EC2实例及apt更新失败求助

排查AWS EC2实例网络出站及HTTPS访问问题

核心排查方向(针对你的场景:能SSH但域名访问失败、IP可通)

从你描述的「能ping通apt源IP但apt update失败」来看,DNS解析大概率是核心问题,结合VPC配置,按以下步骤逐一验证:

1. 验证DNS解析功能

在PuTTY连接的EC2终端执行:

# 测试域名解析
nslookup archive.ubuntu.com
# 或者用dig工具测试
dig archive.ubuntu.com
  • 如果返回server can't find xxx: NXDOMAIN或超时,说明DNS解析失败,继续往下排查;
  • 如果能正常返回对应IP地址,跳过DNS相关步骤,直接看后续内容。

DNS失败的修复步骤:

  • 检查VPC DNS属性:登录AWS控制台→VPC→目标VPC→编辑DNS属性,确保「启用DNS主机名」和「启用DNS解析」都设为是;
  • 检查DHCP选项集:VPC→DHCP选项集,确认关联的选项集里的DNS服务器为AmazonProvidedDNS(默认值,对应VPC网段+2,比如VPC网段是10.0.0.0/16,DNS地址就是10.0.0.2);如果自定义了DNS服务器,需确保该服务器能通过VPC网络正常访问;
  • 临时配置DNS测试:在EC2终端手动修改/etc/resolv.conf添加公共DNS,验证是否能解析:
    echo "nameserver 8.8.8.8" | sudo tee -a /etc/resolv.conf
    
    重新执行nslookup archive.ubuntu.com,如果能解析,说明是DNS配置问题,按上述步骤修正永久配置即可。

2. 确认安全组出站规则

虽然你提到开放了所有出站,仍需仔细验证:

  • 登录EC2控制台→目标实例→安全组→出站规则,确保存在一条规则:
    • 类型:所有流量
    • 协议:所有
    • 目标:0.0.0.0/0
  • 若仅开放了TCP流量,DNS解析依赖的UDP 53端口会被拦截,导致域名无法访问,必须确保UDP和TCP协议都允许出站。

3. 验证子网路由表关联

  • 登录VPC控制台→子网→实例所在子网→路由表,确认关联的路由表包含两条关键路由:
    • 目标0.0.0.0/0,目标类型为互联网网关(IGW)
    • 目标为VPC本地CIDR(如10.0.0.0/16),目标类型为本地
  • 若子网关联的路由表没有指向IGW的默认路由,实例将无法访问公网。

4. 配置HTTPS公网访问(解决出站问题后)

当sudo apt update能正常执行后,按以下步骤确保HTTPS公网访问可用:

  • 安全组入站规则:添加一条规则:
    • 类型:HTTPS
    • 协议:TCP
    • 端口:443
    • 来源:0.0.0.0/0(或按需限制访问IP范围)
  • NACL规则检查:确认入站规则允许TCP 443流量,出站规则允许TCP 1024-65535的响应流量;
  • 实例服务配置:部署React应用的服务(如nginx、serve)需监听0.0.0.0或实例弹性IP,不能仅监听localhost。例如用serve启动应用:
    serve -s build -l 0.0.0.0:443
    

5. 其他辅助验证命令

若以上步骤均无问题,执行以下命令进一步定位:

# 测试TCP 443端口连通性
telnet google.com 443
# 发送HTTPS请求测试
curl -I https://google.com
# 查看实例网络接口详情
ip addr show

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 13:12:47