Ngrok 是一款輕量、功能強大的反向代理工具,可快速且安全地將本機開發環境暴露於公網。它主要透過建立安全隧道(tunnel),讓外部使用者或服務能夠存取本地的 HTTP、HTTPS 或 TCP 應用,而無需進行複雜的網路設定(如port映射設定,或防火牆規則設置),因此其相當適合用於測試需要外網訪問剛開發好的本地端程式。兩個常見的使用情境如下:
1.前端與後端開發:
- 本地端開發的API或Web應用程式需要測試外部整合時,Ngrok 可以快速建立公網URL。
- 適用於調試第三方回呼介面(如通知系統回呼等等)。
2.Webhook 偵錯:
- 外部服務(如 LINE Message API等)通常需要回呼Webhook位址。
- Ngrok提供臨時URL,使本機服務能夠接收Webhook調用。
另外,Ngrok 可以跨平台運行在各種作業系統(如Windows和Linux)中,一起來了解如何利用docker運行Ngrok。
a.先自行到Ngrok官網註冊,並取得Ngrok的token。接著拉取Ngrok的docker images。
sudo docker pull ngrok/ngrok
b.利用下列docker指令啟動Ngrok的方式,即可看到Ngrok服務啟動畫面,如本文封面圖所示,同時可以看到監聽port 5000。接著利用瀏覽器輸入紅色框處的URL,即可順利看到Ngrok服務介面,包含本機端<->Ngrok<->外網的連接狀態,同時若有問題,該連接狀態亦會顯示哪一段服務斷線而導致的。(Note:若是要映射到本機端的flask server服務,該port需與flask程式中的webhook的port一致。)
c.測試時,可利用下列指令切換到Ngrok服務啟動畫面,查看該容器的實時輸出內容。若希望離開該服務畫面而不中止該容器的運行,按Ctrl+P並按Ctrl+Q即可安全退出。
若有http request請求服務,該Ngrok服務畫面會顯示http code供查看和偵錯。另外,也可以瀏覽器訪問0.0.0.0:4040,查看Ngrok的request的即時狀態。
沒有留言:
張貼留言