AWS Application Load Balancer无法访问,求排查思路
AWS Application Load Balancer 无法访问排查指南
问题背景
我创建了一个关联VPC的AWS Application Load Balancer,所用子网的路由表已配置Internet Gateway,安全组已开放所有端口的全IP访问,但仍无法访问负载均衡器地址 income-api-loadbalancer-1730847403.eu-north-1.elb.amazonaws.com。
测试结果
- Ping命令超时:
% ping income-api-loadbalancer-1730847403.eu-north-1.elb.amazonaws.com PING income-api-loadbalancer-1730847403.eu-north-1.elb.amazonaws.com (51.21.31.9): 56 data bytes Request timeout for icmp_seq 0 Request timeout for icmp_seq 1
- 使用
nc访问80端口超时:
% nc -v 51.21.31.9 80 nc: connectx to 51.21.31.9 port 80 (tcp) failed: Operation timed out
已尝试操作
- 调整安全组开放80/443端口
- 将VPC的ACL设置为允许所有流量
- 负载均衡器状态显示活跃,但仍无法访问
可能的原因及排查方向
1. 负载均衡器子网配置问题
- 确认ALB关联的所有子网都配置了指向Internet Gateway的路由表(ALB需要至少两个可用区的子网,每个子网的路由表都必须包含
0.0.0.0/0指向IGW的条目) - 检查子网是否为公有子网:确认子网的“自动分配公有IPv4地址”属性已启用,确保子网内的资源能获取公网IP
2. 安全组规则细节
- 验证安全组入站规则是否同时覆盖
0.0.0.0/0(IPv4)和::/0(IPv6)的所有端口,且出站规则允许所有流量(ALB需要出站流量连接后端目标) - 确认ALB实例已正确关联目标安全组,未选错其他安全组
3. VPC网络ACL规则
- 检查ACL的入站规则:确保80/443端口的流量被允许,且规则优先级高于拒绝规则(即使设置了允许所有,也要避免被高优先级的拒绝规则覆盖)
- 检查ACL的出站规则:由于网络ACL是无状态的,必须允许对应端口的响应流量(例如允许所有TCP出站流量)
4. 后端目标组配置
- 查看目标组健康状态:如果所有后端目标都不健康,ALB会拒绝流量(即使ALB状态显示活跃,目标组不健康也会导致无法响应请求)
- 确认目标组的端口、协议与ALB监听器配置一致,且后端实例的安全组允许ALB安全组访问对应端口
5. 路由表与IGW关联验证
- 确认Internet Gateway已正确关联到当前VPC,未被删除或解除关联
- 检查路由表条目:确保
0.0.0.0/0指向IGW的路由未被更具体的路由条目覆盖(例如不存在51.21.31.9/32的异常路由)
6. 网络环境与地域限制
- 测试本地网络是否有防火墙或代理限制访问EU-North-1区域的AWS服务:可尝试在AWS同区域的EC2实例中访问ALB地址,排除本地网络问题
- 验证DNS解析:使用
nslookup或dig命令检查ALB地址的解析IP是否与ping结果一致,避免DNS缓存导致的解析错误
7. ALB监听器配置
- 确认ALB已创建对应端口(80/443)的监听器,且监听器已关联到目标组
- 检查监听器规则:确保没有错误的路径匹配或重定向规则导致流量无法到达后端
内容的提问来源于stack exchange,提问作者user2145041
相关产品推荐
相关产品推荐

