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

无法连接AWS EC2上运行的Akka HTTP服务求助

Akka HTTP部署AWS EC2连接故障排查方案

一、验证Akka HTTP服务监听状态

  • 登录EC2实例,执行以下命令确认服务是否正确绑定端口:
    ss -tulpn | grep 5377
    
    若输出显示0.0.0.0:5377,说明服务正常监听所有网卡;若仅显示127.0.0.1:5377,则服务仅绑定本地回环,无法被外部访问。
  • 检查应用启动日志,确认Http().bindAndHandle调用无异常,排除端口占用、权限不足等报错(5377为非特权端口,无需root权限)。

二、EC2实例网络层排查

  • 确认公网IP有效性:检查EC2实例是否分配公网IP,执行以下命令验证实例自身的公网IP是否与你访问的3.101.78.138一致:
    curl http://169.254.169.254/latest/meta-data/public-ipv4
    
    若实例无公网IP(子网为私有子网且未配置NAT网关),公网无法直接访问。
  • 检查网络ACL规则:子网subnet-bc22ebda关联的网络ACL需同时配置:
    • 入站规则:允许TCP 5377端口,源0.0.0.0/0(或你的本地IP)
    • 出站规则:允许所有TCP端口(或至少允许临时端口范围),目标0.0.0.0/0
      网络ACL为无状态规则,需双向放行才能建立TCP连接。
  • 本地连通性测试:在EC2实例内部执行:
    curl http://localhost:5377
    curl http://<实例内网IP>:5377
    
    若本地访问失败,说明服务未正常启动;若本地能访问,问题出在外部网络链路。

三、Akka HTTP配置校验

  • 检查application.conf中是否存在覆盖绑定地址的配置:
    akka.http.server.default-http-address = "localhost"
    
    若存在该配置,会覆盖代码中指定的0.0.0.0,导致服务仅监听本地。
  • 确认应用初始化完成:查看应用完整日志,排除依赖缺失、配置错误等导致服务未完成初始化的情况。

四、补充验证手段

  • 使用telnet测试连接:
    telnet 3.101.78.138 5377
    
    若提示Connection refused,说明服务未监听端口或安全组/ACL拦截;若超时,说明公网链路不通。
  • 复核安全组规则:确认安全组sg-0901a32ad173d6aae的入站规则为TCP协议、5377端口、源IP范围正确,避免误配置为UDP或错误的源IP。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 01:30:34