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

AWS EC2实例SSH连接超时及负载均衡报错求助

问题分析与解决方案

问题概述

按照Django部署到AWS ECS的Terraform教程操作,前期通过EC2 Instance Connect成功连接EC2实例,但部署后出现以下问题:

  1. 访问负载均衡IP先返回503 Service Unavailable,修改入站规则源为0.0.0.0/0后变为502 Bad Gateway
  2. SSH连接实例超时:

    ssh: connect to host xx port 22: Operation timed out

  3. Ping实例IP提示Request timed out

分步排查与解决

1. 优先解决EC2实例网络可达性问题(SSH/Ping超时)

  • 检查安全组出站规则:确保EC2实例所在安全组允许出站流量,至少需允许TCP 443(EC2 Instance Connect依赖AWS API通信)、ICMP(Ping测试)的出站请求
  • 验证网络ACL规则:
    • 入站ACL需开放TCP 22(SSH)、ICMP(Ping)的流量,源可设为0.0.0.0/0或你的本地IP段
    • 出站ACL需允许对应流量的响应包返回(如TCP 22的ACK包、ICMP响应)
  • 确认子网路由表配置:检查实例所在子网关联的路由表,是否存在指向Internet Gateway(IGW)的路由,无此路由则实例无法与公网通信
  • 检查EC2 Instance Connect服务状态:
    • Amazon Linux 2默认预装该服务,其他系统需确认是否已安装
    • 待实例恢复连接后,执行systemctl status ec2-instance-connect确认服务运行正常

2. 排查负载均衡502错误

  • 检查目标组健康状态:
    • 登录AWS控制台查看负载均衡关联的目标组,确认EC2实例是否处于健康状态
    • 若实例不健康,检查健康检查路径是否正确(比如是否配置了Django的健康检查端点如/health/),同时确认健康检查的端口、协议与实例上的Django服务一致
  • 验证Django服务运行状态:
    • SSH连接恢复后,执行ps aux | grep gunicorn(或你使用的WSGI服务器)确认服务是否正常启动
    • 查看服务日志(如/var/log/gunicorn.log)排查启动或请求异常
  • 检查负载均衡安全组:确保负载均衡入站规则允许HTTP/HTTPS流量,出站规则允许访问目标组的服务端口(如8000)

3. 额外验证点

  • 确认实例公网IP配置:检查实例是否分配了弹性公网IP(EIP),或所在公有子网是否自动分配公网IP
  • 私有子网NAT网关检查:若实例在私有子网,确认NAT网关配置正确,实例可通过NAT访问公网
  • 本地网络排查:在Mac OS终端执行traceroute ec2-xx-xx-xx-xx.compute-1.amazonaws.com,查看链路是否有阻断,同时确认本地防火墙未拦截SSH/Ping流量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 01:52:40