如何在Google Colab中使用ngrok生成静态URL替代随机URL?
实现Flask+ngrok静态固定URL方案
一、免费版本可行方案
ngrok免费版虽无永久绑定的静态域名,但验证邮箱后可使用自定义临时子域名(只要该子域名未被他人占用,每次启动隧道时指定即可复用),操作步骤:
- 先完成ngrok账号的邮箱验证(登录官网完成验证,这是使用自定义子域名的必要前提)
- 修改原代码,在
ngrok.connect()中添加subdomain参数指定自定义子域名:!pip install flask pyngrok !ngrok authtoken {{你的认证令牌}} from flask import Flask from pyngrok import ngrok import os app = Flask(__name__) # 修正原代码语法错误:name → __name__ @app.route("/") def home(): return "Hello from Flask" # 替换为你想要的子域名,比如"my-flask-demo" public_url = ngrok.connect(5000, bind_tls=True, subdomain="my-flask-demo") print("固定访问URL:", public_url) app.run() - 每次运行代码时,只要该子域名未被占用,就能得到固定的
https://my-flask-demo.ngrok.io地址
注意:免费版的自定义子域名若7天未使用,会被系统自动释放,需重新指定。
二、付费版本(Pro/Enterprise)方案
付费版支持永久静态域名,可绑定自有域名或使用ngrok提供的固定子域名,操作步骤:
- 登录ngrok官网,在仪表盘的「Domains」页面添加并配置你的静态域名(可选择使用ngrok官方子域名或绑定自己的域名)
- 修改代码,在
ngrok.connect()中添加domain参数指定已配置的静态域名:!pip install flask pyngrok !ngrok authtoken {{你的认证令牌}} from flask import Flask from pyngrok import ngrok import os app = Flask(__name__) @app.route("/") def home(): return "Hello from Flask" # 替换为你配置好的静态域名 public_url = ngrok.connect(5000, bind_tls=True, domain="my-fixed-domain.ngrok.io") print("永久静态URL:", public_url) app.run() - 每次启动隧道都会自动绑定该静态域名,无需担心被释放
额外优化:付费版支持「Persistent Tunnels」功能,可在ngrok配置文件中预设隧道参数,启动时直接调用,无需在代码中重复配置。
代码修正说明
原代码存在一处语法错误:app = Flask(name) 需改为 app = Flask(__name__),否则Flask无法正确识别应用的根路径。
内容的提问来源于stack exchange,提问作者etrling dscouza
相关产品推荐
相关产品推荐

