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

部署在AWS EC2的Flask应用无法访问问题求助

解决AWS EC2上Flask应用5000端口无法访问的问题

先排查实例内部端口监听状态

本地curl 127.0.0.1:5000失败,说明问题出在实例内部,先确认Flask进程是否真的在监听5000端口:

ss -tulpn | grep 5000
# 若未安装ss,用netstat(需先安装net-tools)
netstat -tulpn | grep 5000

如果没有任何输出,说明Flask进程未成功监听端口,检查启动日志:

  • 运行python main.py时,确认是否出现类似以下启动日志:
    * Serving Flask app 'main'
     * Debug mode: off
     * Running on all addresses (0.0.0.0)
     * Running on http://127.0.0.1:5000
     Press CTRL+C to quit
    
    若没有该输出,尝试把port='5000'改为整数port=5000,再重新启动应用。

检查实例内部防火墙规则

虽然未安装ufw,但EC2默认可能存在iptables规则限制端口,执行以下命令查看:

iptables -L -n

如果发现拒绝5000端口的规则,添加允许规则:

sudo iptables -A INPUT -p tcp --dport 5000 -j ACCEPT

补充验证安全组规则

确认安全组配置无误:

  • 入站规则类型为TCP,端口范围5000,来源为0.0.0.0/0(或你指定的访问IP)
  • 该安全组已绑定到目标EC2实例

代码规范优化(不影响访问,但修复响应逻辑)

你的testprint()函数直接在全局作用域调用,仅启动时打印一次,且未返回HTTP响应,访问根路径会触发500错误,优化后写法:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def testprint():
    print('''
      text test
    ''')
    return "Flask应用正常响应"  # 添加HTTP响应内容

if __name__ == "__main__":
     app.run(host='0.0.0.0', port=5000)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 23:46:03