ngrok 不求人:自己搭一個窮人版的ngrok 服務 | ngrok教學
在開發聊天機器人的過程中,可以透過ngrok[1]這個服務來快速測試我們在開發中的本地程式碼,本篇文章將介紹如何用nginx+sshreversetunnel來自己架設一個窮人版的偽ngrok,並且研究一下其中的原理。(圖片來源:ngrok官網)簡單的來說,ngrok就是可以讓內網伺服器與外界溝通的一個服務。一般來說我們本地開發時,會使用開瀏覽器連到http://localhost或http://127.0.0.1的本地端伺服器預覽成果,因為大部分所在的網路環境都是由NAT分配虛擬ip給你,因此頂多是跟你同樣網段的同事可以連線到你電腦上的webserver看看有沒有搞砸什麼。但是有...
在開發聊天機器人的過程中,可以透過 ngrok[1] 這個服務來快速測試我們在開發中的本地程式碼,本篇文章將介紹如何用 nginx + ssh reverse tunnel 來自己架設一個窮人版的偽 ngrok,並且研究一下其中的原理。
(圖片來源: ngrok 官網)
簡單的來說,ngrok 就是可以讓內網伺服器與外界溝通的一個服務。 一般來說我們本地開發時,會使用開瀏覽器連到 http://localhost 或 http://127.0.0.1 的本地端伺服器預覽成果,因為大部分所在的網路環境都是由 NAT 分配虛擬 ip 給你,因此頂多是跟你同樣網段的同事可以連線到你電腦上的 web server 看看有沒有搞砸什麼。
但是有些開發的場景就一定需要由外網可以連線到你的本地 server,常見的例如:
Chatbot:聊天機器人通常會設定一個 webhook url,讓服務端(如 Line、Facebook)可以將訊息發佈到你的伺服器上面。 金流系統:在串接金流的時候,通常都會需要有個 ReturnUrl 回傳網址,在金流付款成功後將結果送到你的伺服器上面。 其他各式各樣的 api callback 一定要 Demo 給客戶看但是還沒部署的時候一般來說我們比較難取得固定的 public ip,當然在家你可以使用光世代申請一組固定的 ip 使用,在公司的話你可以求網管把公司對外唯一組 public ip 的 80 port 或 443 port 設定 port forwording 給你(不過我勸你不要嘗試這麼做,應該會被罵),或者是每次要測試的時候一定要部署到 server 上,但這樣在開發上又沒效率。
於是 ngrok[2] 這個服務就是幫我們解決這個問題。使用 ngrok 的方式大概就是:
註冊一個 ngrok 帳號 在你的電腦上安裝 ngrok client[3],並且啟用token 在 console 中輸入 ngrok http 3000 來連線到 ngrok proxy server,你就會得到一串網址。 接著你就可以用上述的網址連線到你的 local server localhost:3000