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

无法连接EC2实例中Flask应用的4000端口,求解决方案

问题排查与解决方法

1. Flask绑定地址错误(最常见原因)

你的Flask代码里,app.run仅指定了端口,未设置host参数,默认会绑定127.0.0.1(本地回环地址),这意味着只有EC2实例内部能访问应用,公网无法连接。

修改代码:

if __name__ == '__main__':
    app.run(debug=True, port=4000, host='0.0.0.0')

0.0.0.0表示绑定实例的所有网卡,确保外部可通过公网IP访问。

2. 验证安全组入站规则

确认安全组入站规则满足以下条件:

  • 协议:TCP
  • 端口范围:4000
  • 源:0.0.0.0/0(测试阶段允许所有公网IP访问,生产环境建议限制为特定IP段)

若规则中源设置为特定IP,需确保你当前的公网IP在允许范围内。

3. 检查EC2实例本地防火墙

Linux实例默认可能启用firewalld或iptables,需确认4000端口已开放:

  • 查看已开放端口:
    sudo firewall-cmd --list-ports
    
    或
    sudo iptables -L
    
  • 若未开放,添加规则并生效:
    sudo firewall-cmd --add-port=4000/tcp --permanent
    sudo firewall-cmd --reload
    

4. 确认应用监听状态

在EC2实例上执行命令,检查Flask是否在正确地址监听:

ss -tulpn | grep 4000

正常输出应包含0.0.0.0:4000或:::4000,若显示127.0.0.1:4000,说明仍绑定本地地址,回到第一步修改代码。

5. 验证公网IP正确性

确认你访问的公网IP是EC2实例当前的有效公网IP(实例重启后公网IP会变更,除非绑定了弹性IP),可在EC2控制台的实例详情页查看。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 23:43:19