程序化 ngrok 隧道 url

Posted

技术标签:

【中文标题】程序化 ngrok 隧道 url【英文标题】:Programmatic ngrok tunnel url 【发布时间】:2019-03-27 00:51:16 【问题描述】:

我正在尝试通过使用 bash 设置全局变量和环境变量以编程方式获取 ngrok 动态生成的 IP 地址。

以下是我目前所拥有的。


运行ngrok http server url

在您的主机根目录中运行:

curl  http://localhost:4040/api/tunnels > ~/ngrok_tunnels.json;

安装 jq

Brew install [jq](https://stedolan.github.io/jq/)(让你通过bash访问json)

之后你只需要按照 jq 的文档访问这个 json。

在调用开发 URL 的项目根目录中。 [0]=(http) [1]=(https)

echo “NGROK_TUNNEL=$(jq .tunnels[1].public_url ~/ngrok_tunnels.json
)" >> .env

将您的所有开发网址设置为 process.env.NGROK_TUNNEL


所以这行得通,但它是“最佳方式”吗?

【问题讨论】:

【参考方案1】:

对于想要使用 python 通过 ngrok 获取 url 的人,the pyngrok library

from pyngrok import ngrok

#Open a HTTP tunnel on the default port 80
#<NgrokTunnel: "http://<public_sub>.ngrok.io" -> "http://localhost:80">
http_tunnel = ngrok.connect()
#Open a SSH tunnel
#<NgrokTunnel: "tcp://0.tcp.ngrok.io:12345" -> "localhost:22">
ssh_tunnel = ngrok.connect(22, "tcp")

也可以通过 ngrok API 直接做一些事情。我没有找到创建隧道的选项,但是创建隧道后,您可以重新启动或更新它

https://ngrok.com/docs/api#api-tunnel-sessions-list

【讨论】:

【参考方案2】:

简短的回答是肯定的。

您可以升级到paid plan 并使用--subdomain 参数每次都获得相同的ngrok url。下一个价格水平包括白标,您也可以在其中使用自己的自定义域。

【讨论】:

以上是关于程序化 ngrok 隧道 url的主要内容,如果未能解决你的问题,请参考以下文章

Ngrok 隧道 https 通过配置

Ngrok 为现有 Vhost 设置 SSL 本地隧道

如何在 Rails 6 中将我的 Ngrok 隧道动态添加到 config.hosts?

用于 asp.net 核心应用程序的 ngrok 和 https 隧道

ngrok 错误页面:无法完成隧道连接

如何调试 ngrok 隧道暴露的远程 JVM