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

在EC2实例部署Flask遇连接拒绝:Max retries exceeded问题排查

解决EC2上Flask应用外部无法访问的问题

核心问题定位

你遇到的Connection refused错误,本质是用HTTPS(443端口)访问仅运行HTTP服务的Flask应用——默认情况下Flask只提供HTTP服务,不会处理HTTPS请求,且你指定的监听端口是8080(或默认5000),并非443端口。

分步解决

1. 使用正确的访问URL

直接改用HTTP协议,加上Flask监听的端口号:

  • 若启动时指定了8080端口:http://my-ec2-address-at.amazonaws.com:8080
  • 若使用默认Flask端口(5000):http://my-ec2-address-at.amazonaws.com:5000

2. 确认Flask监听的地址和端口

在EC2服务器终端执行以下命令,检查Flask是否真的在监听0.0.0.0(允许外部访问):

netstat -tulpn | grep python

正常输出应包含类似0.0.0.0:8080的条目;如果只有127.0.0.1:8080,说明应用仅允许本地访问,需确保启动命令带-h 0.0.0.0参数,比如:

flask --app api/api run -h 0.0.0.0 -p 8080

3. 验证EC2安全组配置

  • 进入AWS控制台的EC2页面,找到实例对应的安全组
  • 检查入站规则,确保添加了一条:
    • 类型:HTTP(TCP)
    • 端口范围:8080(或你使用的端口)
    • 来源:0.0.0.0/0(测试用,允许所有IP访问;生产环境建议限制特定IP)

4. 检查Ubuntu本地防火墙

执行以下命令查看防火墙状态:

sudo ufw status

如果防火墙处于active状态,需允许对应端口的流量:

sudo ufw allow 8080/tcp
sudo ufw reload

本地验证

先在EC2服务器本地测试应用是否正常:

curl http://localhost:8080

如果能返回Hello World!,说明应用本身无问题,问题出在网络层面配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:45:51