Ngrok with vagrant 在 Windows 10 中不起作用

Posted

技术标签:

【中文标题】Ngrok with vagrant 在 Windows 10 中不起作用【英文标题】:Ngrok with vagrant doesn't work in windows 10 【发布时间】:2020-05-17 16:19:05 【问题描述】:

我正在尝试通过 ngrok 公开我的本地服务器。我正在使用 vagrant 在我的本地服务器中运行我的项目,所以,我读到有一个用于 vagrant 和 ngrok 的插件,“vagrant share”。我已经下载了 ngrok,但是当我运行命令 vagrant share 时,结果如下:

找不到可执行文件'ngrok' Vagrant 试图运行 在 PATH 变量中。 'ngrok' 可执行文件是必需的 运行 Vagrant 共享。如果“ngrok”当前安装在 非标准位置,将该位置附加到 PATH 变量并再次运行此命令。

我已经把 ngrok 放到环境变量里了,但是还是不行。

知道如何解决吗?我有几天遇到这个问题,但我无法解决。

【问题讨论】:

【参考方案1】:

您是否尝试过手动安装vagrant share 插件?

vagrant plugin install vagrant-share

【讨论】:

【参考方案2】:

您必须在 Windows PATH 中明确包含 ngrok。我怀疑vagrant share 插件没有安装ngrok

为了自己做同样的事情,我碰巧使用 Visual Studio Code 运行,使用 PowerShell 作为终端。我从 ngrok 网站以 zip 格式下载了 ngrok,解压缩,将其放在我的 Windows 主目录中,并将其添加到 PowerShell 路径中。然后vagrant share 立即起作用(我不必明确设置身份验证令牌或连接帐户)。下面将 windowsuser 替换为您的帐户 ID。

    从这里下载 ngrok-stable-windows-amd64.zip:https://ngrok.com/download 在您的“下载”文件夹中双击它,将其复制并粘贴到可访问的文件夹中,例如c:\Users\windowsuser 在 Powershell 终端中,执行:$env:Path += ";c:\users\windowsuser" 在 Powershell 终端中,验证 ngrok.exe 现在是否可用,如下所示:
PS C:\Users\windowsuser\vagrant_getting_started> ngrok
NAME:
   ngrok - tunnel local ports to public URLs and inspect traffic

DESCRIPTION:
    ngrok exposes local networked services behinds NATs and firewalls to the
    public internet over a secure tunnel. Share local websites, build/test
    webhook consumers and self-host personal services.
    Detailed help for each command is available with 'ngrok help <command>'.
    Open http://localhost:4040 for ngrok's web interface to inspect traffic.

EXAMPLES:
    ngrok http 80                    # secure public URL for port 80 web server
    ngrok http -subdomain=baz 8080   # port 8080 available at baz.ngrok.io
    ngrok http foo.dev:80            # tunnel to host:port instead of localhost
    ngrok http https://localhost     # expose a local https server
    ngrok tcp 22                     # tunnel arbitrary TCP traffic to port 22
    ngrok tls -hostname=foo.com 443  # TLS traffic for foo.com to port 443
    ngrok start foo bar baz          # start tunnels from the configuration file

VERSION:
   2.3.35

AUTHOR:
  inconshreveable - <alan@ngrok.com>

COMMANDS:
   authtoken    save authtoken to configuration file
   credits      prints author and licensing information
   http         start an HTTP tunnel
   start        start tunnels by name from the configuration file
   tcp          start a TCP tunnel
   tls          start a TLS tunnel
   update       update ngrok to the latest version
   version      print the version string
   help         Shows a list of commands or help for one command
PS C:\Users\windowsuser\vagrant_getting_started> 
    然后vagrant share 应该可以工作;如您所见,我正在学习 vagrant 教程。
PS C:\Users\windowsuser\vagrant_getting_started> vagrant share
==> default: Detecting network information for machine...
    default: Local machine address: 127.0.0.1
    default:
    default: Note: With the local address (127.0.0.1), Vagrant Share can only
    default: share any ports you have forwarded. Assign an IP or address to your
    default: machine to expose all TCP ports. Consult the documentation
    default: for your provider ('virtualbox') for more information.
    default:
    default: Local HTTP port: 4567
    default: Local HTTPS port: disabled
    default: Port: 2200
    default: Port: 4567
==> default: Creating Vagrant Share session...
==> default: HTTP URL: http://e058e1d1b464.ngrok.io
==> default:
    如果您使用的是常规 CMD 提示符,则可以如下设置 PATH,并且与上述完全相同的 ngrok 和 vagrant 命令也可以使用。
C:\Users\windowsuser>set PATH=%PATH%;C:\Users\windowsuser

【讨论】:

【参考方案3】:

在您的 $PATH 中仅提供可以找到 ngrok 二进制可执行文件的路径。例如:/path/to 是正确的,而不是 /path/to/ngrok

至少那是我一开始的错误。希望细节对某人有所帮助。原则上@learning2learn 的答案是正确的。

【讨论】:

以上是关于Ngrok with vagrant 在 Windows 10 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

404 Not Found with ngrok 和 Bot Framework

ngrok-公共网址在哪里

Go with the Wind——记融合部小学三四年级主题探究实践

Docker命令操作容器

使用 ngrok 在 Windows PC 上为 Slack 本地开发时无法运行 sudo

使用 Twilio + Flask + Ngrok + Python (2.7) 在本地主机上出现 404 错误