ngrok多端口 ngrok多隧道

「翻譯」ngrok 1.X 配置文檔

ngrok 的配置文件是完全可選的非常簡單 YAML 格式文件,他可以允許你使用 ngrok 一些更高級的功能,例如:

  1. 同時運行多個隧道
  2. 連接到自定義的 ngrok 服務器
  3. 調整 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:[email protected]:3128"
tunnels:
  ...

原文鏈接: https://imlonghao.com/28.html 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章