Cloudflare Tunnel
一條從你機器連到 Cloudflare 的安全通道 —— 不用公開 IP、不開連接埠、伺服器不外露。
Cloudflare Tunnel 是什麼?
Cloudflare Tunnel 讓你把跑在自己電腦或內網裡的服務安全地對外發佈 —— 而且不用給它公開 IP、也不用在防火牆上開洞。
你跑一支叫 cloudflared 的小程式。它不是被動等訪客連進來,而是從你的機器主動往上連到 Cloudflare(outbound,向外連線)。訪客連到 Cloudflare,Cloudflare 再把他們的請求順著這條通道送到你的服務。
把它想成…
一位專屬接待員主動走出去迎接客人、再帶他們進門 —— 而不是把你家大門敞開不鎖。你家完全不必對著馬路露出任何入口。
為什麼用它?
傳統上要讓家用伺服器或辦公室應用程式能從網路連到,你得有公開 IP、設定連接埠轉發(port forwarding),還要開對內的防火牆規則 —— 每一項都是資安風險又麻煩。Tunnel 把這些全省掉。
不開連接埠
你可以在防火牆封掉所有對內流量,卻依然能被連到。
不用公開 IP
在家用路由器、CGNAT、會一直變動的浮動 IP 後面都能用。
隱藏來源主機
你伺服器的真實 IP 從不外露,攻擊者沒辦法直接鎖定它。
免費 HTTPS
Cloudflare 在邊緣處理 TLS 加密,你的公開網址自動就是加密的。
什麼時候該用?
家用實驗室/自架服務
把樹莓派應用、NAS 或興趣專案發佈出去,不用動路由器設定。
本機開發示範
用一個真正的公開網址,把跑在 localhost 的網站分享給客戶或同事。
內部工具
不用架整套 VPN,就能連到內部儀表板或資料庫。
SSH/遠端桌面
安全地遠端管理機器,又不用把那些連接埠暴露出去。
怎麼建立一條通道?
有兩種做法:用儀表板(遠端管理,最適合新手)或用命令列。以下是裝好 cloudflared 後的經典命令列流程。
安裝 cloudflared
在跑著你服務的機器上安裝這支連接器程式(以下示範 macOS)。
# macOS (Homebrew) brew install cloudflared # or download a binary for Linux/Windows from Cloudflare登入授權
這會開啟瀏覽器,授權 cloudflared 並選擇這條通道要綁哪個網域。
cloudflared tunnel login建立通道
幫它取個名字。Cloudflare 會產生一個唯一的通道 ID,並在你機器上建立一個憑證檔。
cloudflared tunnel create my-tunnel把網址指到這條通道
建立 DNS 紀錄,讓 app.example.com 指向你的通道。
cloudflared tunnel route dns my-tunnel app.example.com對應你的本機服務
在 ~/.cloudflared/config.yml 裡,把網址對應到你的本機服務(例如跑在 localhost:8080 的網站)。
tunnel: my-tunnel credentials-file: /Users/you/.cloudflared/<TUNNEL-ID>.json ingress: - hostname: app.example.com service: http://localhost:8080 - service: http_status:404 # catch-all, required啟動它
啟動通道。你的本機服務現在就上線在 https://app.example.com 了。之後可把它裝成系統服務,開機就自動跑。
cloudflared tunnel run my-tunnel # run automatically on startup (Linux/macOS): # sudo cloudflared service install
重點概念
cloudflared
建立並維持通道的輕量 daemon(背景程式)。
通道(Tunnel)
一個有唯一 UUID 的長期物件,把你的來源主機跟 Cloudflare 連起來。
只往外連
cloudflared 主動撥出去連 Cloudflare,沒有任何東西能反過來連進你這裡。
Ingress 規則
把每個公開網址對應到某個本機服務的設定。
連接器(Connector)
每個正在跑的 cloudflared 程序;可同時跑多個做備援。
遠端管理
從 Zero Trust 儀表板設定整條通道,不用本機設定檔。
小提示與計費
用 Access 加上登入門檻
把 Tunnel 搭配 Cloudflare Access,在任何人連到你服務前先要求登入(Google、GitHub、email 一次性密碼)—— 拿來保護私人內部工具超合適。
- cloudflared 與 Cloudflare Tunnel 都免費使用。
- 通道一旦能用,就把防火牆所有對內連接埠都封掉 —— 只往外連正是它的精髓。
- 把 cloudflared 跑成系統服務,讓通道在重開機後依然存活。
- 儀表板(遠端管理)流程最好上手;命令列則透過 config.yml 給你更多掌控。