【问题标题】:Ngrok with vagrant doesn't work in windows 10Ngrok with vagrant 在 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 放到环境变量里了,但是还是不行。

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

【问题讨论】:

    标签: windows vagrant ngrok tunnel


    【解决方案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。

      1. 从这里下载 ngrok-stable-windows-amd64.zip:https://ngrok.com/download
      2. 在您的“下载”文件夹中双击它,将其复制并粘贴到可访问的文件夹中,例如c:\Users\windowsuser
      3. 在 Powershell 终端中,执行:$env:Path += ";c:\users\windowsuser"
      4. 在 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> 
      
      1. 然后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:
      
      1. 如果您使用的是常规 CMD 提示符,则可以如下设置 PATH,并且与上述完全相同的 ngrok 和 vagrant 命令也可以使用。
      C:\Users\windowsuser>set PATH=%PATH%;C:\Users\windowsuser
      

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-11-17
          • 2016-03-08
          • 2018-12-04
          • 2015-12-12
          • 2018-12-12
          • 1970-01-01
          相关资源
          最近更新 更多