ngrok同时运行多个隧道

默认配置文件位置

如果未指定配置文件的位置,ngrok将尝试从默认位置读取一个位置$HOME/.ngrok2/ngrok.yml。配置文件是可选的; 如果该路径不存在,则不会发出错误。

在默认路径中,$ HOME是操作系统定义的当前用户的主目录。它不是环境变量$ HOME,尽管它们通常是相同的。对于主要操作系统,如果您的用户名是example默认配置,则可能会在以下路径中找到:

OS X. /Users/example/.ngrok2/ngrok.yml
Linux的 /home/example/.ngrok2/ngrok.yml
视窗 C:\Users\example\.ngrok2\ngrok.yml

隧道定义

配置文件的最常见用途是定义隧道配置。定义隧道配置很有用,因为您可以从命令行按名称启动预配置的隧道,而不必每次都记住所有正确的参数。

隧道定义为tunnels配置文件中属性下的名称 - >配置的映射。

定义两个名为'httpbin'和'demo'的隧道

tunnels:
  httpbin:
    proto: http
    addr: 8000
    subdomain: alan-httpbin
  demo:
    proto: http
    addr: 9090
    hostname: demo.inconshreveable.com
    inspect: false
    auth: "demo:secret"

启动名为'httpbin'的隧道

ngrok start httpbin

您定义的每个隧道都是配置选项名称到值的映射。配置选项的名称通常与其对应的命令行开关相同。每个隧道都必须定义 protoaddr。其他属性可用,许多属性是特定于协议的。

隧道配置属性

proto

需要

 

所有

隧道协议名称,中的一个httptcptls
addr

需要

 

所有

将流量转发到此本地端口号或网络地址
inspect

所有

启用http请求检查
auth

HTTP

HTTP基本身份验证凭据以强制执行隧道请求
host_header

HTTP

将HTTP Host标头重写为此值,或preserve保持不变
bind_tls

HTTP

性结合的HTTPS或HTTP端点或两者truefalseboth
subdomain

HTTP

 

TLS

要请求的子域名。如果未指定,则使用隧道名称
hostname

HTTP

 

TLS

要求的主机名(需要保留名称和DNS CNAME)
crt

TLS

此路径上的PEM TLS证书可在本地转发之前终止TLS流量
key

TLS

PEM TLS此路径上的私钥,用于在本地转发之前终止TLS流量
client_cas

TLS

此路径上的PEM TLS证书颁发机构将验证传入的TLS客户端连接证书。
remote_addr

TCP

绑定给定地址上的远程TCP端口

同时运行多个隧道

您可以传递多个隧道名称ngrok start,ngrok将同时运行它们。

从配置文件中启动三个命名隧道

ngrok start admin ssh metrics
ngrok by @inconshreveable

Tunnel Status                 online
Version                       2.0/2.0
Web Interface                 http://127.0.0.1:4040
Forwarding                    http://admin.ngrok.io -> 10.0.0.1:9001
Forwarding                    http://device-metrics.ngrok.io -> localhost:2015
Forwarding                    https://admin.ngrok.io -> 10.0.0.1:9001
Forwarding                    https://device-metrics.ngrok.io -> localhost:2015
Forwarding                    tcp://0.tcp.ngrok.io:48590 -> localhost:22
...

您还可以要求ngrok使用交换机启动配置文件中定义的所有隧道 --all

启动配置文件中定义的所有隧道

ngrok start --all

相反,您可以让ngrok在没有启动任何隧道的情况下运行--none 。如果您计划完全通过API管理ngrok的隧道,这将非常有用。

在不启动任何隧道的情况下运行ngrok

ngrok start --none

示例配置文件

示例配置文件如下所示。后续部分包含这些示例中显示的所有配置参数的完整文档。

为多个虚拟托管开发站点运行隧道

authtoken: 4nq9771bPxe8ctg7LKr_2ClH7Y15Zqe4bWLWF9p
tunnels:
  app-foo:
    addr: 80
    proto: http
    host_header: app-foo.dev
  app-bar:
    addr: 80
    proto: http
    host_header: app-bar.dev

你可能感兴趣的:(ngrok同时运行多个隧道)