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

无法在Google Cloud服务器上运行Flask应用求助

解决方案:GCP上Flask服务无法访问的排查步骤

1. 确认Flask服务是否正常启动

  • 运行Python文件后,检查终端输出:正常启动会显示类似 * Running on http://0.0.0.0:5000/ 的日志。如果无输出,大概率是代码未执行到app.run:
    • 检查app.run的缩进:必须在if __name__ == '__main__':的缩进块内,示例:
      if __name__ == '__main__':
          app.run(debug=False, port=5000, host='0.0.0.0')  # 缩进要正确
      
    • 验证Flask安装情况:执行pip list | grep Flask,无结果则执行pip install flask完成安装
    • 查看进程状态:执行ps aux | grep python,确认是否有Flask相关进程在运行,无进程则说明服务启动失败,检查代码是否存在语法错误

2. 验证端口监听状态

执行ss -tulpn | grep 5000(或netstat -tulpn | grep 5000),若输出中无0.0.0.0:5000的监听记录,说明服务未正确绑定端口:

  • 核对代码内app.run参数:确保host='0.0.0.0'(允许所有IP访问)、port=5000无拼写错误

3. 修正防火墙规则的目标标签配置

你当前将防火墙规则的目标标签设为实例名称,这是错误的——防火墙规则的目标标签需要与实例的网络标签匹配:

  • 进入GCP控制台VM实例页面,选中目标实例并点击「编辑」
  • 在「网络标签」栏添加自定义标签(如allow-flask-5000),保存设置
  • 回到防火墙规则页面,编辑allow-http-5000规则,将「目标标签」改为刚才添加的网络标签,保存规则

4. 检查实例内部防火墙(iptables)

部分GCP实例自带iptables规则限制端口,执行sudo iptables -L查看规则:

  • 若发现拒绝TCP 5000端口的规则,添加允许规则:
    sudo iptables -A INPUT -p tcp --dport 5000 -j ACCEPT
    

完成以上步骤后,重启Flask服务,先通过curl http://localhost:5000测试本地连接,成功后再尝试用外部IP访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 22:42:55