我正在尝试通过使用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
这可行,但这是“最佳方法” 吗?
答案 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 做一些事情。我没有找到创建隧道的选项,但是创建了隧道后,您可以重新启动或更新它