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

如何让Flask应用在EC2公网IP而非私有IP上运行?

Flask 部署AWS EC2公网访问问题解决

为什么指定公网IP会报错?

EC2实例的公网IP是AWS通过NAT技术映射到实例私有IP的,实例本身并没有直接绑定这个公网IP,所以把公网IP作为host参数时,系统会提示“Cannot assign requested address”,这是正常现象。

正确的公网访问配置步骤

  • 启动Flask应用时保持监听所有接口:继续使用命令flask run --host=0.0.0.0,这个命令会让应用监听实例的所有网络接口(包括私有IP),AWS的NAT映射会自动把公网IP的请求转发到实例的私有IP上。
  • 配置EC2安全组:
    • 进入EC2控制台,找到你的实例对应的安全组,添加入站规则。
    • 规则类型选择HTTP(或HTTPS,如果用了加密),端口范围填Flask的默认端口5000(如果改了端口就填对应数值),源地址设为0.0.0.0/0(允许所有互联网IP访问)。
  • 验证访问:用EC2的公网IP加上端口号(比如http://xxx.xxx.xxx.xxx:5000)在浏览器或curl工具中测试,就能从互联网任意位置访问你的Flask应用了。

生产环境注意事项

  • 不要用flask run作为生产环境的启动方式,这个命令是开发用的,性能和稳定性不足。推荐用Gunicorn或uWSGI作为WSGI服务器,搭配Nginx做反向代理。
  • 检查实例的网络ACL,如果之前修改过,要确保对应的端口(比如5000)允许入站流量。

内容的提问来源于stack exchange,提问作者you ram bam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 14:32:06