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

AWS EC2(Amazon Linux)8080端口无法连接问题求助

排查EC2实例8080端口Flask服务无法访问的问题

以下是逐步排查的步骤,按优先级从高到低:

  • 验证Flask服务的监听配置
    首先确认Flask是否绑定了正确的地址并在8080端口监听:

    • 执行命令查看端口监听状态:ss -tulpn | grep 8080
    • 输出中如果监听地址是127.0.0.1,说明服务只绑定了本地回环,外部无法访问。需要修改Flask启动代码,指定绑定所有网卡:
      app.run(host='0.0.0.0', port=8080)
      
    • 同时确认服务是否正常运行,用ps aux | grep flask检查进程状态。
  • 检查实例本地防火墙规则
    Amazon Linux默认可能启用了firewalld或iptables,需要确保8080端口被允许:

    • 若使用firewalld:
      1. 查看状态:sudo systemctl status firewalld
      2. 开放端口:sudo firewall-cmd --permanent --add-port=8080/tcp
      3. 重载规则:sudo firewall-cmd --reload
    • 若使用iptables:
      1. 查看现有规则:sudo iptables -L -n
      2. 添加允许规则:sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
      3. 保存规则:sudo service iptables save
  • 再次核对安全组配置
    即使你已开放端口,仍需确认细节:

    • 确认关联到EC2实例的安全组中,入站规则包含TCP 8080,来源为0.0.0.0/0(或你需要的特定IP段)
    • 检查规则是否生效,避免端口号写错、安全组关联错误等低级问题。
  • 检查网络ACL配置
    若你自定义了VPC的网络ACL,需确保:

    • 入站规则允许TCP 8080端口的流量
    • 出站规则允许TCP 1024-65535端口的响应流量(默认网络ACL无需修改)
  • 本地测试服务可用性
    在EC2实例内部执行curl localhost:8080或curl <实例私有IP>:8080:

    • 如果内部访问失败,说明服务本身未正常启动或配置有误,优先排查Flask代码、依赖包是否安装完整
    • 如果内部访问正常,问题则集中在外部网络层面(安全组、网络ACL、防火墙)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:06:21