Secure tunnels to localhost

需要臨時 demo 本地端開發東西給別人看嗎?

不用部屬,用 ngrok快速開放一個端點讓外界也可以造訪 localhost。

demo.png

image from https://ngrok.com/


ngrok 是什麼?

ngrok 是一個託管服務,跨平台且容易使用,為你 HTTP 流量提供一個安全的通道。

  • 想讓外界能夠造訪本地開發網站或 API
    • 讓別人測試
    • 行動裝置上測試
  • 想讓外部工具能夠訪問本地開發平台上的東西
    • webhook

如何使用

  1. 官網下載對應作業系統並解壓縮。

  2. 測試一下
    version.png

  3. ngrok http 8080 指令 開放 localhost:8080
    http-8080.png

    會產生一組 16進制 xxxxx.ngrok.io domain
    可以用 php -S localhost:8080 快速測試一下

  4. 現在連 cae40aa9.ngrok.io 就可以連到 localhost:8080

  5. 當不需要這個通道時,只要簡單 Ctrl+C 就可以關閉通道


Basic Authentication

ngrok 也可以使用 HTTP 基本認證,不過要先註冊帳號取得 authtoken,再將 token 加到本地設定。

auth.png

  1. ngrok authtoken [your token] 設定 token

  2. ngrok http -auth "username:password" 8080 設定認證帳號密碼


Web Interface

可以列出、檢查、Replay任何傳到這個通道的 request、response。

紀錄診斷資訊,可以重複一個 request ,複製一個錯誤,對 debug 很有用。

  • 預設 localhost:4040
    web-interface.png

後記

這個工具很適合每個 web developer,可以簡單讓其他人臨時造訪本地端,還可以保留或註冊自訂 subdomain (需付費),每次都可以使用同一個 domain。


Reference

  • O’REILLY PHP 網路服務(第二版) (ISBN:9789864761760)