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

AWS ECS EC2启动类型下NestJS容器TCP通信报EADDRNOTAVAIL错误解决

错误产生原因

EADDRNOTAVAIL错误的本质是:你配置的监听IP地址不存在于当前容器的本地网络接口上,系统无法绑定端口到这个不存在的IP。
你当前的配置误区是把服务发现的对外访问地址错填到了NestJS TCP服务的本地监听host字段中,该字段的作用是指定容器本地要绑定的网卡IP,而非其他容器调用你时使用的目标地址。

排查与解决步骤
  • 修正NestJS监听配置:直接将host设置为0.0.0.0即可,代表监听容器内所有可用网卡,无需指定固定IP,修改后代码如下:
app.connectMicroservice({
    transport: Transport.TCP,
    options: {
      host: '0.0.0.0',
      port: data.TcpReceive.TCP_RECEIVE_PORT
    }   
});
  • 验证Task Definition端口配置:确认容器定义的portMappings中已配置3002端口的映射规则,EC2启动类型下建议主机端口填0由ECS自动分配,避免同ECS实例上的端口冲突。
  • 调整服务发现配置:服务发现中注册的访问端点与本地监听配置无关,其他服务调用该TCP服务时,再使用服务发现的端点作为目标主机地址即可。
  • 容器内网络校验:进入异常容器执行ip addr查看本地所有网卡IP,可确认之前配置的TCP_RECEIVE_HOST确实不在本地IP列表中;修改配置重启后执行netstat -tunlp可确认3002端口是否正常监听。
  • 安全组校验:确认ECS实例、容器关联的安全组入站规则已放行3002端口的TCP流量,来源允许同VPC内其他服务的安全组ID即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:36:03