返回列表

部落格

Cloudflare Tunnel 遠端開發完整設定指南

無需開放連接埠、管理 DNS 或設定路由器,即可從任何地方存取你的 Mac 開發伺服器。Cloudflare Tunnel 讓遠端開發變得切實可行。

發布於 標籤: 入門教學 / networking / cloudflare / security / seo
部落格

繼續查看該欄目下的產品與工程更新。

瀏覽此分類

如果你想從區域網路之外存取 Mac 開發環境——咖啡廳、機場、另一座城市——你需要一條穿過網際網路到達你機器的安全通道。傳統方案(連接埠轉送、動態 DNS、VPN)在開發者使用情境中都存在顯著缺陷。

Cloudflare Tunnel 提供了一種更好的模型:你的 Mac 主動建立到 Cloudflare 網路的出站連線,遠端用戶端透過 Cloudflare 連線。無需在路由器上開放連接埠、無需管理 DNS、無需設定防火牆規則。

本指南介紹如何為遠端開發搭建 Cloudflare Tunnel,特別是透過 Tactic Remote 存取 Claude Code 的情境。

Cloudflare Tunnel 的運作原理

架構非常直觀:

Your iPhone          Cloudflare Edge          Your Mac
     │                    │                       │
     │  HTTPS (wss://)    │  Outbound tunnel      │
     │───────────────────►│◄──────────────────────│
     │                    │                       │
     │  Encrypted         │  cloudflared process  │
     │  WebSocket         │  connects outbound    │
     │                    │  to Cloudflare        │
     │                    │                       │

要點:

  • 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:

brew install cloudflared

驗證安裝:

cloudflared --version
# cloudflared version 2025.x.x

快速隧道不需要 Cloudflare 帳號。trycloudflare.com 網域免費且無需註冊。

透過 Tactic Remote Mac 應用設定

Mac 應用會自動處理大部分 Cloudflare Tunnel 設定。

步驟 1:啟用 Cloudflare Tunnel

在 Mac 應用的設定中:

  1. 將 Cloudflare Tunnel 開關切換為啟用
  2. 應用會使用正確的設定啟動 cloudflared
  3. 隧道 URL 出現(例如 https://bright-river-abc123.trycloudflare.com)

後台執行的指令:

cloudflared tunnel --url http://localhost:8765 --protocol h2mux

--protocol h2mux 參數使用 HTTP/2 多工傳輸建立隧道連線,為 WebSocket 流量提供更好的效能。

步驟 2:設定 API Key

這是 Cloudflare 連線的必要項目。 當你的伺服器可從網際網路存取時,必須對連線進行認證。

Mac 應用會產生一個 32 字元的隨機 API Key。你也可以自行設定。從 iPhone 連線時需要此金鑰——它透過 WebSocket 交握的 Sec-WebSocket-Protocol 標頭發送。

步驟 3:設定你的 iPhone

在 iPhone 上的 Tactic Remote 中:

  1. 進入連線設定
  2. 切換到 Cloudflare 模式
  3. 輸入 Mac 應用中顯示的隧道 URL
  4. 輸入 API Key

或者掃描 Mac 應用中的 QR 碼,其中編碼了隧道 URL 和 API Key。

步驟 4:測試連線

  1. 將 iPhone 切換到行動數據(關閉 WiFi 以確認沒有意外使用區域網路)
  2. 開啟 Tactic Remote
  3. 確認連線成功
  4. 建立或開啟一個工作階段
  5. 發送一條測試指令

如果一切正常,就設定完成了。只要 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 應用中。

立即體驗 Tactic Remote

用手機遠端操作程式開發 Agent

連線到 Mac、Windows 或 Linux 電腦上的 Claude Code、Codex 等 Agent,在 iPhone 或 iPad 上查看進度並傳送下一個請求。