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
Go with the Wind——记融合部小学三四年级主题探究实践