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

无法连接AWS Network Load Balancer与ECS Fargate的技术求助

排查ECS Fargate + Network Load Balancer TCP连接失败(无流量日志)的方案

我之前碰到过几乎一模一样的问题,折腾了大半天终于解决了,给你列几个核心排查点,按顺序来大概率能定位到问题:

1. 先盯紧目标组的配置,这是最容易踩的坑

  • 必须确认目标组的目标类型是IP:Fargate任务用的是私有IP而非EC2实例ID,要是选成了实例ID,NLB根本找不到你的容器,直接丢包连日志都不会有
  • 协议/端口要完全匹配:NLB是四层负载均衡,目标组的监听端口必须和Fargate容器暴露的端口完全一致,差一个数字都不行
  • 健康检查别瞎配:如果健康检查失败,NLB会把目标从可用列表里踢出去,自然不会转发流量。TCP类型的健康检查就是看端口是否能通,确保健康检查端口和容器端口一致,而且容器里的服务确实在监听这个端口

2. 检查NLB本身的安全组和VPC子网配置

  • NLB的安全组要双向放行:一方面允许客户端来源的TCP流量(比如你用的80/443或者自定义端口),另一方面要允许NLB访问目标组的端口(也就是容器端口)
  • 子网选对了吗?公网NLB必须选带公网路由的子网(绑定了IGW),内部NLB选私有子网就行。要是公网NLB选了私有子网,域名解析出来的是私有IP,公网客户端根本连不上,自然没日志
  • VPC网络ACL别拖后腿:ACL是无状态的,要同时放行**入站(客户端→NLB)和出站(NLB→客户端)**的流量,还有NLB到容器的入站/出站流量,别只开了入站忘了出站

3. 先确认流量日志本身没问题

  • 你说看不到日志,先检查NLB的流量日志是不是真的启用了:得指定一个S3桶,而且桶的权限要允许AWS ELB服务写入(需要给elasticloadbalancing.amazonaws.com对应的写入权限)
  • 流量日志有延迟!一般要等5-10分钟才会生成S3文件,别刚测试完就去翻桶,可能还没同步上来
  • 如果是TCP流量,正常的日志会记录客户端IP:端口 → NLB IP:端口 → 容器IP:端口的链路,要是连日志条目都没有,说明流量根本没到达NLB,问题出在客户端到NLB的路径(比如DNS解析、路由、客户端安全组)

4. Fargate任务的网络配置别出错

  • 必须用awsvpc网络模式:Fargate只支持这个模式,要是选了别的(虽然也选不了)直接凉
  • 任务的子网要和NLB在同一个VPC里:跨VPC的话得有对等连接或者中转网关,不然NLB根本访问不到容器的IP
  • 检查任务的弹性网卡(ENI)状态:确认ENI正常分配了私有IP,并且绑定的安全组确实是你配置的允许所有流量的那个

5. 客户端侧的快速验证

  • 先用nslookup或者dig查NLB的域名,看解析出来的IP是不是符合预期(公网NLB应该是公网IP,内部NLB是私有IP)
  • 用telnet <NLB-IP> <端口>或者nc -zv <NLB-IP> <端口>测试连接,看是直接超时还是拒绝连接——超时一般是路由/安全组问题,拒绝的话可能是NLB没找到可用目标
  • 如果客户端在VPC内部,确认客户端所在子网的路由表能访问NLB的子网,并且客户端安全组允许访问NLB的端口

我当时踩的坑是目标组选了实例ID类型,改完IP类型之后立刻就通了。另外还有一次是NLB的子网没绑定IGW,公网客户端根本连不到NLB,日志自然一片空白。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:14:56