使用 Ngrok 在 Linux 中使用 HTTP 隧道

在本单元中,我们将学习在 Linux 上使用 ngrok 执行 HTTP 隧道。 曾经遇到过在本地运行网络服务器并需要从网络外部访问它的情况吗? 人们可能并不总是在网络中设置端口转发规则。 这就是 Ngrok 派上用场的地方! Ngrok 允许您使用单个命令通过任何 NAT 或防火墙获得本地主机服务器的即时、安全 URL,在本模块中,我们将了解如何设置 短裙 在我们的 Linux 机器上!

如何在 Linux 上安装 ngrok?

1.下载压缩文件

Ngrok 可以在他们的网站上免费下载 官方下载页面. 它可用于许多不同的平台。 选择最适合您的一个并下载它。 对于本教程,我们将坚持在 Linux 上使用 Ngrok。

Ngrok 下载页面

2. 提取二进制文件

下载压缩文件后,我们需要使用 unzip 命令提取其内容:

$ ls  ngrok-stable-linux-amd64.zip $ unzip ngrok-stable-linux-amd64.zip Archive:  ngrok-stable-linux-amd64.zip   inflating: ngrok                    $ ls  ngrok  ngrok-stable-linux-amd64.zip 

3. 连接我们的帐户

接下来,我们需要在 Ngrok 注册一个帐户

Ngrok 注册页面

在您注册 Ngrok 并登录您的帐户后,您将获得一个身份验证令牌。 将此令牌添加到我们的默认值 ngrok.yml config 文件将允许我们访问更多功能和更长的会话时间。 正在运行的隧道将列在仪表板的状态页面上。

获取身份验证令牌获取身份验证令牌

按照规定,您只需运行以下命令即可:

$ ./ngrok authtoken [TOKEN] 

有了这个,我们就可以使用 ngrok 了!

使用 Ngrok 的 HTTP 隧道

一个很常见的用法 短裙 是允许您网络外的人访问您的本地 HTTP 服务器。 这在您制作网站或网络应用程序并希望将其展示给当前网络之外的人时非常常见!

因此假设我们的服务器在端口 80 上运行,我们可以通过以下方式转发它:

$ ./ngrok http 80 

这应该为您提供一个 HTTP 和一个 HTTPS 链接,如图所示。 现在,如果您在浏览器中复制粘贴这些链接,您将看到您在本地运行的网页!

使用 Ngrok 进行 Http 隧道传输使用 Ngrok 的 HTTP 隧道

分析传入流量

ngrok 提供了一个实时 Web UI,您可以在其中检查通过隧道运行的所有 HTTP 流量。 启动 ngrok 后,只需打开 https://本地主机:4040 在 Web 浏览器中检查请求详细信息。

检查向我们的 Ngrok 服务器发出的请求检查向我们的 Ngrok 服务器发出的请求

在这里,您可以查看对您的 ngrok 链接发出的所有请求,包括请求和响应的详细信息,包括时间、持续时间、标头、查询参数和请求有效负载以及线路上的原始字节。 您还可以重播请求以进一步检查它!

我们的 Ngrok 服务器的状态我们的 Ngrok 服务器的状态

您还可以使用 Web UI 检查隧道的状态,该 UI 为您提供有关隧道状态的不同指标。

向我们的 HTTP 隧道添加身份验证

您可能不希望每个人都访问您的 ngrok 隧道。 因此,为了保护它不被公开访问,您可以使用密码来保护它。 这将使用您指定的用户名和密码作为参数对所有请求强制执行 HTTP 基本身份验证。

$ ./ngrok http -auth="user:pass" 80 
密码保护我们的隧道密码保护我们的隧道

通过 HTTP 隧道共享文件

您还可以使用 ngrok 通过 HTTP 隧道共享您的本地文件夹。 Ngrok 可以使用自己的内置文件服务器为本地文件系统目录提供服务,不需要单独的服务器! 您可以使用 file:// 指定转发 URL 时的方案。 需要注意的是,所有路径都必须指定为绝对路径, file:// URL 方案没有相对路径的概念。

$ ./ngrok http file:///path/to/folder 
通过 HTTP 提供目录通过 HTTP 提供目录

结论

因此,在本模块中,我们看到了如何使用 Ngrok 允许 HTTP 隧道通过我们的网络。 然而,ngrok 是一个非常通用的工具,也可用于隧道 TCP 端口。 有关此工具的更多信息,您可以参考他们的 文件