ngrok 本地安全隧道链接内网穿透

本地安全隧道:localhost,我想将一个本地服务器暴露在NAT或防火墙后面的互联网,ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。

特点

应用不使用 ngrok 和使用 ngrok

不要不断地重新部署正在进行的工作,以获得客户的反馈。 ngrok会在您计算机上的本地Web服务器上创建安全的公共 URL(https://yourapp.ngrok.io)。快速迭代,立即反馈,不中断流量。

简化移动设备测试

针对您计算机上运行的开发后端测试移动应用程序。在本地dev服务器上点ngrok,然后配置你的应用程序使用ngrok URL。它不会改变,即使你改变网络。

ngrok 本地安全隧道链接内网穿透

轻松构建 webhook 集成

构建webhook集成可能是一个痛苦:它需要一个公共地址和大量的设置来触发钩子。节省自己的时间和沮丧与ngrok。检查流经您的隧道的HTTP流量。然后,通过一次点击重播webhook请求,以便在上下文中快速迭代。

从您自己的专用网络运行个人云服务

拥有您的数据。在您自己的专用网络上托管个人云服务。使用完整的端到端加密在您的硬件上运行 webmail,文件同步和更安全。

ngrok 本地安全隧道链接内网穿透

使用 ngrok 链接

需要在生产中运行 ngrok? 使用 ngrok 链接 to 来管理物联网设备或作为VPN的轻量级替代品,以便有针对性地访问客户网络。

步骤1:解压缩

在 Linux 或 OSX上,您可以使用以下命令从终端解压缩 ngrok。在 Windows 上,只需双击 ngrok.zip 解压。

$ unzip /path/to/ngrok.zip

步骤2:运行它!

阅读有关如何使用 ngrok 的文档。尝试它通过从命令行运行:

$ ./ngrok help

配置文件

ngrok 的配置文件是完全可选的非常简单 YAML 格式文件,他可以允许你使用 ngrok 一些更高级的功能,例如:

  • 同时运行多个隧道
  • 连接到自定义的 ngrok 服务器
  • 调整 ngrok 一些很神秘的功能

ngrok 的配置文件默认从 ~/.ngrok 加载。你可以通过 -config 参数重写配置文件的地址。

同时运行多个隧道

为了运行多个隧道,你需要在配置文件当中使用 tunnels 参数配置每个隧道。隧道的参数以字典的形式配置在配置文件当中。举个例子,让我们来定义三个不同的隧道。第一个隧道是一个有认证的只转发 https 的隧道。第二个隧道转发我们自己机器的 22 端口以便让我可以通过隧道连接到自己的电脑。最后,我们使用自己的域名创造了一个隧道,我们将要在黑客马拉松中展示这个。

tunnels:

client:

auth: "user:password"

proto:

https: 8080

ssh:

proto:

tcp: 22

hacks.inconshreveable.com:

proto:

http: 9090

通过 ngrok start 命令,我们可以同时运行三个隧道,后面要接上我们要启动的隧道名。

ngrok start client ssh hacks.inconshreveable.com

终端现在看上去应该是这样的:

ngrok

Tunnel Status online

Version 1.3/1.3

Forwarding https://client.ngrok.com -> 127.0.0.1:8080

Forwarding http://hacks.inconshreveable.com -> 127.0.0.1:9090

Forwarding tcp://ngrok.com:44764 -> 127.0.0.1:22

...

隧道设置

每一个隧道都可以设置以下五个参数:protosubdomainauthhostname 以及 remote_port。每一个隧道都必须定义 proto ,因为这定义了协议的类型以及转发的目标。当你在运行 http/https 隧道时, auth 参数是可选的,同样, remote_port 也是可选的,他声明了某个端口将要作为远程服务器转发的端口,请注意这只适用于 TCP 隧道。 ngrok 使用每个隧道的名字做到子域名或者域名,但你可以重写他:

tunnels:

client:

subdomain: "example"

auth: "user:password"

proto:

https: 8080

现在当你运行 ngrok start client 的时候,他将会有这样的效果:example.ngrok.com -> 127.0.0.1:8080。相似的,这对自定义域名同样适用,他可以让你通过别名的方式是隧道名更短。

tunnels:

hacks:

hostname: "hacks.inconshreveable.com"

proto:

http: 9090

对于 TCP 隧道,你可以会通过 remote_port 参数来指定一个远程服务器的端口作为映射。如果没有声明,服务器将会给你随机分配一个端口。

tunnels:

ssh:

remote_port: 60123

proto:

tcp: 22

其他设置选项

通过在配置文件的顶级配置中声明其他可选的选项,ngrok 的配置文件还可以让你做一些更有趣的事情。举个例子,当你在与 ngrok.com 服务器交互的时候可能需要声明 auth_token 。当你需要改变 ngrok 自带的 web 调试工具所绑定的端口是,你可能需要声明 inspect_addr

auth_token: abc123

inspect_addr: "0.0.0.0:8888"

tunnels:

...

连接到自定义的 ngrok 服务器

ngrok 支持连接到其他的 ngrokd 服务器上,即便他们并不托管在 ngrok.com 上。首先,显然你必须正确的配置好你的 ngrokd 服务器。如何配置你自己的 ngrokd 服务器请看这里:运行你自己的 ngrokd 服务器。当你运行了你自己的 ngrokd 服务器,你需要设置两个参数来让 ngrok 安全的连接到你的服务器。首先,你需要设置 server_addr 来支出你服务器的地址。然后你需要设置 trust_host_root_certs 来确保你的 TLS 连接安全。

server_addr: "example.com:4443"

trust_host_root_certs: true

tunnels:

...

在 http 代理下运行

最后,你可以设置 ngrok 在 http 代理下运行,这有时候是很有必要的如果你在一个高度限制的企业网络中时。 ngrok 遵守标准的 Unix 环境变量 http_proxy, 但你也可以通过在配置文件中声明 http_proxy 参数来指定。

http_proxy: "http://user:password@10.0.0.1:3128"

tunnels:

...

相关链接

  • 官网:https://ngrok.com/
  • 中文文档:https://www.wenjiangs.com/docs/ngrok

以上是 ngrok 本地安全隧道链接内网穿透 的全部内容, 来源链接: utcz.com/p/232618.html

回到顶部