[Ngrok] 將內網 localhost 無痛分享至外網
Ngrok
透過簡單的方式,將內網 localhost 讓外網可以連進來,順便連 SSL 都處理好了 對於開發 webhook 或是 SSL 的網頁時非常好用
安裝
建議直接把他裝到 global
-
先至官網註冊一帳號
- 下載並解壓縮出 ngrok 到你目前的目錄,按照官網說明輸入 token
$ ngrok authtoken [你的Token]
這時候會產生 ~/.ngrok2/ngrok.yml
- 將 ngrok 放到資料夾 ~/.ngrok2/bin 之下
$ mkdir ~/.ngrok2/bin $ mv ngrok ~/.ngrok2/bin
- 再把他加到 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 的替代方案
參考
- https://tenten.co/blog/how-to-use-ngrok-to-connect-your-localhost/
- https://ngrok.com/download
- https://rubyplus.com/articles/4191-How-to-Expose-Local-Rails-App-to-the-Public-Internet
留言