在開發或運維工作中,我們常常會面臨一個挑戰:如何安全地將內部服務(如本地開發網站、儀表板、內網 API 等)公開到網路上,又不想暴露系統在風險之中?Cloudflare Tunnel 正是這樣一個簡單又強大的解法。
Cloudflare Tunnel 是什麼?
Cloudflare Tunnel(舊稱 Argo Tunnel)是由 Cloudflare 所推出的服務,它能讓你將內部服務安全地暴露在互聯網上,無需設定 port forwarding、開啟防火牆或擁有公開 IP。
這項技術的核心理念很簡單:由你的伺服器主動建立一條加密通道(tunnel)連接 Cloudflare 的全球網路,並透過 Cloudflare 提供的網域名稱將使用者流量反向代理回你的本地服務。
為什麼你會需要它?
傳統上,如果你要把本地的應用程式公開給他人瀏覽,往往需要:
-
公開 IP 位址
-
設定防火牆和 NAT port forwarding
-
自行申請 SSL 憑證與 HTTPS 設定
-
負擔潛在的攻擊風險
而 Cloudflare Tunnel 則完全省去這些麻煩,讓你只需一行指令,就能做到這一切,甚至還提供了免費的 HTTPS、DDoS 防護與身分驗證機制。
快速上手:免登入也能立即使用!
Cloudflare Tunnel 提供一種非常方便的模式,叫做 Quick Tunnel,你不需要 Cloudflare 帳號或設定 DNS,就可以快速把你的本地服務公開出去。
在終端機輸入以下內容
cloudflared tunnel --url http://localhost:3000
注意 port 是 localhost 的網站你給的 port
執行後會立即得到一個 Cloudflare 自動產生的臨時公開網址,例如:
https://bold-fox-14.trycloudflare.com
這條網址就能讓你或他人立即存取你本地的網站,非常適合開發測試或短時間分享。
如果你想要更完整的功能與部署彈性,請參考下一節使用正式的授權與 DNS 管理模式。
正式部署範例(需授權登入)
如果你需要使用自訂網域、Cloudflare Access、或長期部署服務,則建議你使用完整的 Cloudflare Tunnel 建立方式:
步驟如下(以 Linux 為例):
1. 安裝 cloudflared 工具程式
sudo apt install cloudflared
2. 登入 Cloudflare 帳號並授權
cloudflared tunnel login
3. 建立一條新的 tunnel
cloudflared tunnel create my-tunnel
4. 設定你的網域與轉發目標
cloudflared tunnel route dns my-tunnel dev.example.com
5. 啟動 tunnel
cloudflared tunnel run my-tunnel
常見應用情境
-
遠端存取內部網站或系統管理介面
-
分享本地開發環境給客戶或同事
-
保護儀表板、NAS、Home Assistant 等敏感服務
-
打造遠端 IoT 設備的安全入口
-
展示測試版應用程式給遠端審查或用戶測試
常見問題
Q:它和 ngrok 有什麼差別?
A:Cloudflare Tunnel 更適合生產環境使用,不僅免費提供自訂網域與 HTTPS,還整合 Cloudflare 其他安全功能,如 DDoS 防禦與存取控制。
Q:Quick Tunnel 有效期限多久?
A:它是臨時的,只要你關閉終端機或中斷程式,該連線就會失效。
Q:我的機器在 NAT 或私有網路中,還能用嗎?
A:可以!Cloudflare Tunnel 是主動連出,不需開放任何防火牆 port。
如果你正在尋找一種安全、穩定、簡單的方式將本地服務公開到網路上,Cloudflare Tunnel 是非常值得一試的工具。無論你是開發者、系統管理員、IoT 愛好者,這個工具都能大幅簡化你的工作流程,並提升整體安全性。