在 Vagrant box 上访问 ngrok web 界面

Accessing ngrok web interface on a Vagrant box

我有一个用于本地开发的 Vagrant 盒子。我正在开发一个从外部调用的 webhook;所以我正在考虑使用 ngrok.com 将请求代理到我的 Vagrant 环境。我是这个 ngrok 的新手。

我正在尝试弄清楚如何访问 ngrok 的 Web 界面,该界面通常位于 http://127.0.0.1:4040。当然,这在我的浏览器中不起作用,因为它在 Vagrant 框之外,所以它的本地主机不是 Vagrant 的本地主机。

我(认为我)有 Vagrant 的 IP 地址。我在 vm: network: private_network: 192.168.nnn.nnn

下的 config.yaml 文件中找到了它(是的,带有 a)

感谢您的帮助。

将以下行添加到您的 Vagrantfile

config.vm.network "forwarded_port", guest: 4040, host: 8080

然后您可以在 http://localhost:8080 or http://127.0.0.1:8080 from host system. you can take help of Vagrant Documentation .

访问

使用命令转到您的客户机:

vagrant ssh vmname

并使用 ifconfig 检查来宾计算机的 ip。 vagrant 使用默认网络并为来宾计算机分配一个 ip,因此您可以使用该 ip 从主机访问 web 界面 http://vagrantip:4040

您可以创建或分配 public 或专用网络 IP。参考 vagrant Networking

当尝试访问 VM 中的站点时,将 ngrok 放入主机中,并使用以下命令调用它:

ngrok http -host-header=rewrite mydomain.com:80

您需要访问您的站点(在主机的浏览器中):

http://123456.ngrok.io

但它会重写为mydomain.com

并且您将能够访问您的 ngrok 仪表板(在主机的浏览器中):

http://127.0.0.1:4040

文档位于 https://ngrok.com/docs#host-header。祝你好运!

你的问题是这个:https://github.com/inconshreveable/ngrok/issues/153

您必须创建一个包含以下内容的配置文件:

web_addr: 0.0.0.0:4040

然后 运行 ngrok 如下:

ngrok http 3000 -config=/path/to/ngrok.conf

现在您可以使用以下地址从浏览器访问 Web 界面:http://vagrantip:4040 or http://vagranthostname:4040

例如http://192.168.33.34:4040 or http://site.dev:4040如果你的/etc/hosts是这样配置的

有关 ngrok 配置文件的更多信息在此处:https://ngrok.com/docs#config

更改您的配置 nano ~/.ngrok2/ngrok.yml 添加以下内容:

web_addr: 0.0.0.0:4000

这将向您的主机打开对您的 ngrok 仪表板的访问权限。