程序化ngrok隧道网址

时间:2018-10-22 21:22:34

标签: bash shortcut ngrok

我正在尝试通过使用bash设置全局变量和env变量来以编程方式获取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


这可行,但这是“最佳方法” 吗?

2 个答案:

答案 0 :(得分:0)

简短的答案是肯定的。

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

答案 1 :(得分:0)

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

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