有時候會需要暫時的 public ip 來運行環境,比較常見的需求像是
- 分享一個檔案給內網外的朋友
- 測試環境需要 SSL 憑證 (https)
- API 的 callback url (需要 https)
雖然要在本地端使用憑證不是不能,只是設定需要一些時間。之前我有這樣的需求時都是透過 ngrok。長久使用下來還算方便,美中不足的點是 ngrok 分享出來的外網網址不是很乾淨
以上的 ngrok 的截圖,分享出來的網址是 https://50bb33a3.ngrok.io
然而就在前幾天發現更棒的方案,serveo。
serveo 透過 ssh 的方式將一個具有 public ip 的 domain 映射到內網,最棒的地方在於因為是透過 ssh,所以不需要安裝套件,而且映射出來的 domain 還可以自訂!
這樣的服務居然不要收費,真的太佛心了!
他的官網上簡潔明瞭的一句話:
ssh -R 80:localhost:3000 serveo.net
簡單一行指令就會自動產生一個 domain 來映射到內網的 3000 port
也可以用剛才提到的自訂子域名的方式
ssh -R yiyu:80:localhost:8888 serveo.net
這樣子可以透過 https://yiyu.serveo.net
來訪問內網 8888 port
如此一來要分享某一個目錄下的檔案可以先透過 python3 來啟動一個簡單的 HFS
python3 -m http.server
然後再穿透內網
ssh -R yiyu:80:localhost:8000 serveo.net
(python3 的 http.server 預設開 8000 port)
如此一來人家就可以透過 https://yiyu.serveo.net
來取得路徑下的檔案了,非常方便 😄