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

如何解决Flask+Nginx Python应用公网IP访问的连接超时问题

解决AWS EC2上Python应用无法通过公网IP访问的问题

核心排查与解决步骤

1. 检查AWS EC2安全组(最关键)

AWS EC2的安全组是实例的第一道防火墙,优先级高于系统内的iptables/ufw:

  • 登录AWS控制台,找到目标EC2实例,进入安全组配置页面
  • 添加一条入站规则:
    • 类型:TCP
    • 端口范围:5111
    • 源:0.0.0.0/0(允许所有公网IP访问)
  • 保存规则后等待1-2分钟再测试访问

2. 验证Ubuntu系统防火墙(ufw)

若实例启用了ufw,可能会覆盖iptables规则:

  • 查看ufw状态:sudo ufw status
  • 若ufw处于活跃状态,允许5111端口:sudo ufw allow 5111/tcp
  • 重启ufw生效:sudo ufw reload

3. 确认应用绑定地址正确性

再次验证应用是否监听了所有网卡:

  • 执行命令:sudo netstat -tulpn | grep 5111
  • 确保输出显示0.0.0.0:5111,而非127.0.0.1:5111或仅私有IP

4. 连通性测试

  • 本地终端执行telnet your_public_ip 5111,若连接成功则端口已对外开放
  • 也可通过在线端口检测工具验证公网端口可达性

5. 反向代理配置检查(若使用Nginx/Apache)

如果用Nginx反向代理uWSGI:

  • 确保Nginx配置中upstream指向127.0.0.1:5111(或uWSGI监听地址)
  • 确认Nginx的80/443端口已在安全组和防火墙中开放(你提到静态页正常,此部分通常无问题)
  • 重启Nginx:sudo systemctl restart nginx

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 03:43:17