少於 1 分鐘閱讀

Ngrok

透過簡單的方式,將內網 localhost 讓外網可以連進來,順便連 SSL 都處理好了 對於開發 webhook 或是 SSL 的網頁時非常好用

安裝

建議直接把他裝到 global

  1. 先至官網註冊一帳號

  2. 下載並解壓縮出 ngrok 到你目前的目錄,按照官網說明輸入 token
    $ ngrok authtoken [你的Token]
    

    這時候會產生 ~/.ngrok2/ngrok.yml

  3. 將 ngrok 放到資料夾 ~/.ngrok2/bin 之下
    $ mkdir ~/.ngrok2/bin
    $ mv ngrok ~/.ngrok2/bin
    
  4. 再把他加到 PATH 中
    $ vim ~/.zshrc
    -# 加入 export PATH="$PATH:$HOME/.ngrok2/bin/"
    

重開 terminal 後,就可以在任何地方使用 ngrok 這個指令了

使用 Rails 建立對外的開發環境

$ rails s -b 0.0.0.0
$ ngrox http 3000
-# Forwarding                    https://xxxxxxx.ngrok.io -> localhost:3000 

之後就可以使用 https://xxxxxxx.ngrok.io 進行測試

問題排除

Rails 會發現 webconsole 無法顯示

Cannot render console from 36.239.59.39! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255

可以到 development.rb

config.web_console.whiny_requests = false # 改為全開放
config.web_console.whitelisted_ips = '209.249.19.171'  # 或是針對對外IP設白名單
config.web_console.whitelisted_ips = '209.249.0.0/16'   # 或是網域遮罩的寫法

ngrox 的替代方案

localtunnel localtunnel的gem

參考

  1. https://tenten.co/blog/how-to-use-ngrok-to-connect-your-localhost/
  2. https://ngrok.com/download
  3. https://rubyplus.com/articles/4191-How-to-Expose-Local-Rails-App-to-the-Public-Internet

更新時間:

留言