Cloudflare Tunnel 內網穿透架站

最近用 AI 自己寫網站的人變多了,如果想要讓別人可以看到自己寫的網頁,用 http://localhost:8080 別人是看不到的。在問問全知全能的 Chat 大神後,看到了一個免費又神奇的東西:Cloudflare Tunnel

照著 cloudflared 說明文件灌好後就可以用下面的指令生成一個臨時的 .trycloudflare.com 網址

cloudflared tunnel --url http://localhost:8080

在這個範例建立了一個臨時網址 https://prison-throw-accessing-eagle.trycloudflare.com

不過如果要有自己的專屬網址怎麼做呢?

以前要自己架網站最麻煩的地方就是網路的設定,雖然用 DDNS 可以解決浮動 IP 一直變的問題,但如果是租屋處的數據機不是自己可以改設定的話,就沒有辦法 Port Forwarding 進到網頁主機。

這個 Tunnel 的原理就是把 Cloudflare 當作一個中繼站,由網頁主機的 cloudflared 主動向外建立連線,就可以讓外面的瀏覽器穿過防火牆連進去。

source:https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/

準備的材料有:

  • 一台有接網路的小主機(個人習慣用 Ubuntu)
  • 一個域名 domain name

域名便宜的一年可能 500 NTD 內就有,可以去 Cloudflare 買,就可以少一個 DNS 代管的步驟。

要去 Zero Trust 做一個新的群組

然後到 Tunnels 建立通道

選擇 Cloudflared,至於 WRAP 的設計太”零信任”了,本身是一個 VPN client,會把網路流量都重新導向過去,不是很好用

幫通道取個名字

選一個喜歡的安裝方式,Ubuntu 就選 Debian,喜歡用 Docker 也可以,把指令貼進去就會自己安裝,成功的話下面就會出現已連線。

一個通道建議只綁定一個主機,要多台主機看是要用內網連線,或是用多個通道單獨連線。

再來建立公用主機名稱,也就是對外的網址,下面選擇想要轉發的服務,我們是網頁所以轉發 HTTPS,URL 就填網頁主機的內網 IP 。裡面也有 TCP 選項可以自訂 port

因為我們要從網站主機傳送 SSL 憑證,下面 其他應用程式設定/TLS 打開,這個無 TLS 認證打勾

回去看 DNS 設定就可以看到新的網址有 CNAME 轉發到 Tunnel

就可以試試看用自己的網域名稱連線了

參考資料:

https://blog.ujoj.cc/post/cloudflare-tunnel/

https://www.mobile01.com/topicdetail.php?f=494&t=6645449


發表迴響