如何在Google Colab中运行flask-ngrok?出现ConnectionRefusedError错误
解决Google Colab中Flask-ngrok连接拒绝(ConnectionRefusedError)的问题
问题场景
在Google Colab单元格中执行包含Flask-ngrok的代码,已完成ngrok账号注册并配置authtoken,但运行后未生成可访问的ngrok链接,反而抛出ConnectionRefusedError: [Errno 111] Connection refused错误。
解决方法
以下是几个可行的排查和修复步骤:
修正ngrok认证命令格式
原代码中authtoken添加了单引号,可能导致认证失败。去掉引号,直接执行:!ngrok authtoken YOUR_ACTUAL_TOKEN升级pyngrok到最新稳定版
旧版本(如4.1.1)可能与当前Colab环境不兼容,执行以下命令更新依赖:!pip uninstall pyngrok flask-ngrok -y !pip install pyngrok flask-ngrok修改Flask启动参数
指定Flask监听所有网络接口并明确端口,避免本地连接限制:
将原代码中的app.run()替换为:app.run(host='0.0.0.0', port=5000)手动启动ngrok隧道(绕过flask-ngrok)
如果flask-ngrok仍无法正常工作,可拆分Flask运行和ngrok隧道启动步骤:- 先在后台启动Flask服务:
from flask import Flask import threading app = Flask(__name__) @app.route('/') def home(): return "Hello World" def run_flask(): app.run(host='0.0.0.0', port=5000, debug=False) threading.Thread(target=run_flask).start() - 再启动ngrok隧道映射端口:
!ngrok http 5000
- 先在后台启动Flask服务:
重启Colab运行时
有时Colab的运行时环境会出现缓存或进程冲突,通过菜单栏「运行时」→「重启运行时」重置环境后,重新执行所有代码。验证ngrok基础功能
单独执行!ngrok version,若无法输出版本信息,说明ngrok安装异常,重新执行卸载安装命令:!pip uninstall pyngrok -y !pip install pyngrok
内容的提问来源于stack exchange,提问作者Siddharth Pyapali
相关产品推荐
相关产品推荐

