部落格
Cloudflare Tunnel 遠端開發完整設定指南
無需開放連接埠、管理 DNS 或設定路由器,即可從任何地方存取你的 Mac 開發伺服器。Cloudflare Tunnel 讓遠端開發變得切實可行。
繼續查看該欄目下的產品與工程更新。
瀏覽此分類如果你想從區域網路之外存取 Mac 開發環境——咖啡廳、機場、另一座城市——你需要一條穿過網際網路到達你機器的安全通道。傳統方案(連接埠轉送、動態 DNS、VPN)在開發者使用情境中都存在顯著缺陷。
Cloudflare Tunnel 提供了一種更好的模型:你的 Mac 主動建立到 Cloudflare 網路的出站連線,遠端用戶端透過 Cloudflare 連線。無需在路由器上開放連接埠、無需管理 DNS、無需設定防火牆規則。
本指南介紹如何為遠端開發搭建 Cloudflare Tunnel,特別是透過 Tactic Remote 存取 Claude Code 的情境。
Cloudflare Tunnel 的運作原理
架構非常直觀:
要點:
- Mac 發起隧道出站連線到 Cloudflare。不會在公共連接埠上監聽。
- Cloudflare 分配一個 URL(例如
https://random-words.trycloudflare.com),透過隧道路由到你的 Mac。 - 流量端對端加密,使用 TLS。
- 路由器無需任何設定——不需要連接埠轉送、不需要 UPnP、不需要 DMZ。
這與暴露連接埠有本質區別。使用連接埠轉送時,你的 Mac 接受來自整個網際網路的入站連線。使用 Cloudflare Tunnel 時,只有經過 Cloudflare 認證的流量才能到達你的 Mac。
前置條件
- macOS 14 (Sonoma) 或更高版本(Mac 應用整合所需)
- Homebrew 已安裝
- cloudflared — Cloudflare 的隧道用戶端
安裝 cloudflared:
驗證安裝:
快速隧道不需要 Cloudflare 帳號。trycloudflare.com 網域免費且無需註冊。
透過 Tactic Remote Mac 應用設定
Mac 應用會自動處理大部分 Cloudflare Tunnel 設定。
步驟 1:啟用 Cloudflare Tunnel
在 Mac 應用的設定中:
- 將 Cloudflare Tunnel 開關切換為啟用
- 應用會使用正確的設定啟動
cloudflared - 隧道 URL 出現(例如
https://bright-river-abc123.trycloudflare.com)
後台執行的指令:
--protocol h2mux 參數使用 HTTP/2 多工傳輸建立隧道連線,為 WebSocket 流量提供更好的效能。
步驟 2:設定 API Key
這是 Cloudflare 連線的必要項目。 當你的伺服器可從網際網路存取時,必須對連線進行認證。
Mac 應用會產生一個 32 字元的隨機 API Key。你也可以自行設定。從 iPhone 連線時需要此金鑰——它透過 WebSocket 交握的 Sec-WebSocket-Protocol 標頭發送。
步驟 3:設定你的 iPhone
在 iPhone 上的 Tactic Remote 中:
- 進入連線設定
- 切換到 Cloudflare 模式
- 輸入 Mac 應用中顯示的隧道 URL
- 輸入 API Key
或者掃描 Mac 應用中的 QR 碼,其中編碼了隧道 URL 和 API Key。
步驟 4:測試連線
- 將 iPhone 切換到行動數據(關閉 WiFi 以確認沒有意外使用區域網路)
- 開啟 Tactic Remote
- 確認連線成功
- 建立或開啟一個工作階段
- 發送一條測試指令
如果一切正常,就設定完成了。只要 cloudflared 保持執行,隧道 URL 就會持續有效。
Tactic Remote 如何使用隧道
當 Cloudflare Tunnel 處於啟用狀態時,通訊路徑會發生變化:
區域網路模式: iPhone → WiFi → Mac(連接埠 8765)— 直連 WebSocket Cloudflare 模式: iPhone → 行動數據/WiFi → Cloudflare 邊緣節點 → 隧道 → Mac(連接埠 8765)— 透過隧道的加密 WebSocket
從 iPhone 應用的角度來看,唯一的區別是 URL:
- 區域網路:
ws://192.168.1.100:8765 - Cloudflare:
wss://bright-river-abc123.trycloudflare.com
wss:// 前綴表示 WebSocket Secure(加密)。手機與 Cloudflare 之間、以及 Cloudflare 與 Mac 之間的所有資料都是加密的。
安全注意事項
隧道保護了什麼
- 無公共連接埠 — Mac 的防火牆不需要任何入站規則
- TLS 加密 — 所有傳輸中的流量都經過加密
- DDoS 防護 — Cloudflare 的邊緣網路在攻擊到達你的 Mac 之前就將其吸收
- URL 隱蔽性 —
trycloudflare.com的 URL 是隨機產生的,很難被猜到
你需要負責的部分
- API Key 強度 — 使用長隨機金鑰(Mac 應用產生 32 字元)。不要使用弱密碼。
- API Key 傳輸 — 透過 QR 碼(面對面)傳輸金鑰,而不是透過電子郵件或聊天工具發送
- 隧道 URL 隱私 — 不要公開發布你的隧道 URL。任何擁有 URL 和 API Key 的人都可以連線。
- Mac 實體安全 — 伺服器透過 Claude Code 可以存取你的檔案系統。鎖定你的 Mac。
- 速率限制 — Tactic Remote 的伺服器包含速率限制中介軟體以減緩暴力破解嘗試,但它不能替代強 API Key
關於 Cloudflare 能否看到你的流量?
Cloudflare 在其邊緣節點終止 TLS,這意味著它們理論上可以看到你的流量。對於大多數開發情境來說,這是可以接受的——你不會發送機密資料,而且 Cloudflare 的隱私承諾有充分的文件記錄。
如果你對此有顧慮,請只使用區域網路模式,並僅從本地網路進行操作。
疑難排解
「隧道 URL 沒有出現」
- 檢查
cloudflared是否已安裝:which cloudflared - 查看 Mac 應用日誌中的 cloudflared 錯誤
- 嘗試手動執行 cloudflared:
cloudflared tunnel --url http://localhost:8765 - 確認你的網路連線正常
「區域網路可以連線但 Cloudflare 不行」
- 確認隧道 URL 使用的是
wss://(不是ws://) - 確認 Mac 應用和 iPhone 設定中的 API Key 一致
- 檢查你的網路是否阻擋了非標準連接埠的出站連線(在企業網路中雖少見但有可能)
「間歇性中斷連線」
- 快速隧道可能在長時間不活動後回收 URL
- 查看 Mac 應用——如果隧道 URL 發生了變化,請更新 iPhone 設定
- 考慮使用 Cloudflare 帳號建立具名隧道以取得永久 URL
「延遲高」
- 快速隧道透過最近的 Cloudflare 資料中心路由,通常很快
- 如果延遲持續偏高,可能是你的 ISP 與 Cloudflare 的互連品質不佳
- 測試指令:
curl -o /dev/null -w "%{time_total}" https://your-tunnel-url.trycloudflare.com - 延遲低於 200ms 對終端機互動來說沒有問題。超過 500ms 會明顯感覺到。
快速隧道與具名隧道
Tactic Remote 預設使用快速隧道——無需 Cloudflare 帳號,URL 自動分配。這是實現遠端存取的最快路徑。
快速隧道的限制:
- URL 隨機產生,cloudflared 重新啟動後會改變
- 不支援自訂網域
- 不支援 Cloudflare Access 整合(無 SSO、無額外認證層)
具名隧道(需要免費的 Cloudflare 帳號)提供:
- 持久 URL,重新啟動後不會改變
- 自訂網域對應(例如
dev.yourdomain.com) - Cloudflare Access 提供額外認證(SSO、電子郵件驗證)
- 更適合需要多人穩定存取的團隊環境
對於個人開發者,快速隧道完全足夠。如果你發現自己頻繁在手機上更新隧道 URL,可以考慮升級到具名隧道。
Cloudflare Tunnel 的替代方案
為了資訊完整,這裡列出其他遠端存取方案:
連接埠轉送
- 在路由器上開放連接埠,設定防火牆
- 風險:你的 Mac 直接暴露在網際網路上
- 如果 IP 位址變化需要設定動態 DNS
- 不建議用於開發環境
Tailscale/WireGuard VPN
- 在你的裝置之間建立私人網路
- 安全模型良好(點對點加密)
- Mac 和 iPhone 都需要安裝 Tailscale 用戶端
- 注意:Tactic Remote 目前未整合 Tailscale——你需要單獨執行它,並將 Tactic Remote 指向 Tailscale IP
ngrok
- 與 Cloudflare Tunnel 概念類似
- 免費方案有限制(連線數、頻寬)
- 成熟的產品,開發者體驗良好
- 如果你偏好 ngrok 生態系統,可以作為替代方案
SSH 隧道
- 使用 SSH 連接埠轉送的經典方案
- 需要在 Mac 上設定 SSH 伺服器
- 注意:Tactic Remote 使用 WebSocket 而非 SSH——SSH 隧道會將 WebSocket 連線再包一層,增加了複雜度卻沒有明顯效益
Cloudflare Tunnel 是 Tactic Remote 的建議方案,因為它免費、快速隧道無需帳號,並且已經直接整合到 Mac 應用中。