/

用 serveo 來穿透內網吧

有時候會需要暫時的 public ip 來運行環境,比較常見的需求像是

  • 分享一個檔案給內網外的朋友
  • 測試環境需要 SSL 憑證 (https)
  • API 的 callback url (需要 https)

雖然要在本地端使用憑證不是不能,只是設定需要一些時間。之前我有這樣的需求時都是透過 ngrok。長久使用下來還算方便,美中不足的點是 ngrok 分享出來的外網網址不是很乾淨

1

以上的 ngrok 的截圖,分享出來的網址是 https://50bb33a3.ngrok.io

然而就在前幾天發現更棒的方案,serveo

serveo 透過 ssh 的方式將一個具有 public ip 的 domain 映射到內網,最棒的地方在於因為是透過 ssh,所以不需要安裝套件,而且映射出來的 domain 還可以自訂!

這樣的服務居然不要收費,真的太佛心了!

他的官網上簡潔明瞭的一句話:

ssh -R 80:localhost:3000 serveo.net

簡單一行指令就會自動產生一個 domain 來映射到內網的 3000 port

2

也可以用剛才提到的自訂子域名的方式

ssh -R yiyu:80:localhost:8888 serveo.net

3

這樣子可以透過 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 來取得路徑下的檔案了,非常方便 😄