Ngrok說明
甚麼是Ngrok
主要功能是作為一個本地代理伺服器,它能將你本地運行的應用或伺服器暴露到外部網路(如互聯網),即使你的本地設備處於防火牆或 NAT(網絡地址轉換)後面。
-
具體來說,Ngrok 的功能包括:
- 1. 隧道服務(Tunneling Service)
- 2. HTTPS 支援
- 3. 處理 Webhook
- 4. 本地開發與測試
- 5. 自訂子域名與自訂域名(付費功能)
Ngrok 最核心的功能是提供隧道服務,它通過一個公開的 URL,將你本地運行的服務(如 Web 伺服器、API 等)暴露給外部網路。這意味著任何人只要擁有該 URL,就能訪問你本地的服務。
Ngrok 自動生成帶有 HTTPS 的 URL,因此即使你的本地服務只支持 HTTP,Ngrok 也會提供一個安全加密的 HTTPS URL,確保數據在傳輸過程中得到保護。
當使用第三方服務時,很多會要求你的應用能夠接收來自他們的 Webhook(如支付通知或 GitHub 的事件通知)。如果你的伺服器是本地的且無法直接對外公開,Ngrok 可以生成一個公開的 URL 來接收 Webhook 並將其轉發到你的本地伺服器,這在開發和測試階段非常有用。
Ngrok 對於開發者來說是極其方便的工具,因為它可以模擬一個真實的互聯網環境,讓你本地運行的應用能夠接受來自外部的請求,而無需部署到外部伺服器上。
對於 Ngrok 的付費版本,你可以設定固定的子域名或自訂域名,使得每次啟動 Ngrok 時,URL 都不會變化。這對於長期需要測試或公開訪問的服務特別有用。
啟動本地伺服器代理
使用 Ngrok 來暴露本地的 Flask 伺服器(通常 Flask 預設端口是 5000):
執行ngrok.exe,輸入以下指令
1 | ngrok http 5000 |
代理多個Url
正常來說,Ngrok一次只能配置一個url,但可以透過編輯yml檔來代理多個url
首先執行ngrok.exe,輸入以下指令,查看yml檔案路徑
1 | ngrok config check |
你應該會看到如下架構
1 | version: "2" |
把這邊修改成
1 | version: "2" |
就可以達到代理多個url了
- 重點解釋
- 每個 tunnel(如 flask_app、second_app 等)是一個獨立的服務代理。
- 每個代理都需要指定 proto(協議)和 addr(本地的應用埠號)。
- 啟用指定的代理:
- 一次啟動多個代理:
tunnels底下的結構
啟用特定的代理
1 | ngrok start flask_app |
1 | ngrok start flask_app second_app |
我要當個免費仔xd
Comments