前言
使用google colab运行的web应用无法打开进行测试。
第一时间想到是否有相关工具能将内网映射到外网供访问。于是找到了ngrok。
ngrok 是什么,我们为什么要使用它?
ngrok官网是一个全球分布的反向代理,无论您在哪里运行,它都能保护、保护和加速您的应用程序和网络服务。您可以将ngrok视为应用程序的前门。
ngrok是独立于环境的,因为它可以向任何地方运行的服务提供流量,而不会改变您的环境网络。在 AWS、Azure、Heroku、阿里云、腾讯云本地 Kubernetes 集群、树莓派甚至笔记本电脑上运行您的应用程序。有了ngrok,一切工作都是一样的。
ngrok 是一个统一的入口平台,因为它将所有组件整合到一个组件中,将您的服务传输到互联网。ngrok将您的反向代理、负载平衡器、API网关、防火墙、交付网络、DDoS保护等整合在一起。
简单的说,可以用于将自己的本地端口暴露到公网上,从而实现内网穿透
如何使用
注册
首先我们需要注册ngrok的账号,打开ngrok | Unified Application Delivery Platform for Developers官网进行注册,需要科学上网。
https://ngrok.com/
快速开始
点击Getting started ,按照文档内容进行安装,选择适合自己的安装方式
colab是python环境的,如下直接使用即可:
from pyngrok import ngrokngrok.set_auth_token("your_auth_token")# 使用 ngrok 将本地的 Gradio 服务器端口转发到公共 URL
public_url = ngrok.connect(addr="8501", proto="http")tunnels = ngrok.get_tunnels()
#ngrok.disconnect(public_url)
print("tunnels:", tunnels)
# 输出公共 URL
#print("Public URL:", public_url)
直接执行
访问成功
注意事项
Authtoken获取
登录后,访问 Ngrok仪表板 获取你的认证令牌。点击Reset Authtoken按钮可重置token。
ERROR: authentication failed: Your account is limited to 1
因为免费的Ngrok账户是受限的,只能同时运行一个Ngrok代理会话。这意味着无法在同一时间运行多个Ngrok隧道,除非你配置了代理会话。
你可以通过两种方式解决这个问题:
-
配置Ngrok代理会话:你可以使用Ngrok代理会话配置文件,允许在同一代理会话中运行多个隧道。你可以在 Ngrok文档 中找到如何配置代理会话的详细信息。
-
关闭其他Ngrok隧道:关闭其他正在运行的Ngrok隧道,以便你能够创建新的隧道。
无论你选择哪种方法,确保你的Ngrok账户能够允许至少运行一个Ngrok隧道。