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

Windows/Ubuntu EC2实例中Flask应用无法通过公网IP访问的问题

Flask EC2部署访问失败问题排查与解决

你的推测是否正确?

不正确。使用flask run --port 80 --host=0.0.0.0时,Flask会监听实例上所有可用的网络接口,控制台显示私有IP只是默认输出格式,不代表仅响应该IP的请求。

解决步骤

  • 检查EC2安全组入站规则
    确保安全组中添加了TCP 80端口的入站规则,来源设置为你的本地IP(测试阶段可临时设为0.0.0.0/0,生产环境需限制具体IP)。即使IIS能正常访问,也需确认该规则的来源范围是否覆盖你的本地机器。
  • 检查实例本地防火墙
    • Windows:打开「Windows Defender防火墙」,确认入站规则允许TCP 80端口的外部连接,可临时关闭防火墙验证问题是否解决(验证后务必重新开启)。
    • Ubuntu:执行sudo ufw status查看防火墙状态,若开启则添加规则sudo ufw allow 80/tcp,再执行sudo ufw reload生效。
  • 确认Flask监听地址
    • Windows:在命令提示符执行netstat -ano | findstr ":80",检查输出中是否存在0.0.0.0:80的监听记录,对应PID需与Flask进程一致。
    • Ubuntu:执行ss -tulpn | grep ":80",确认监听地址为0.0.0.0:80。
  • 实例内部验证服务可用性
    在EC2本地终端(Windows用PowerShell,Ubuntu用终端)执行curl http://localhost:80或curl http://<private_IP>:80,若能返回Flask应用内容,说明服务本身正常,问题出在网络链路。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 19:55:22