不少團隊已在本地 Mac跑通 OpenClaw,上線後卻卡在另一組問題:Gateway 需要 7×24 掛在機房級裸金屬,而 Canvas、螢幕錄製、相機與 system.run 又必須留在具備 TCC 授權的本地 Mac。2026 年官方 macOS 文件將此路線定義為 Remote 模式——遠端只跑 Gateway,本地啟動 node host,控制面經 SSH 隧道或 Tailscale 走預設 18789 連接埠。本文整理可重現的雙機拓撲、對照決策表、六步接入流程與報錯速查,機型與節點以 CALMVPS 定價頁為準。
讀完你應能回答三件事:① 你的場景該維持 Local 單機還是切換 Remote 雙機;② Gateway 應放在哪個 CALMVPS 區域、本地 App 如何切 Remote 並拉起 node host;③ 隧道失敗、18789 被占用,或 Gateway 顯示 node IP 為 127.0.0.1 時,優先執行哪幾條指令。
01 雙機拓撲要解決的生產痛點
把「所有能力堆在同一台 Mac」在示範環境很順手,進入生產後常見三類隱性成本:
- 算力與權限綁死:Gateway 長連線、Cron 與多頻道工作階段消耗 CPU/記憶體;本機同時要開螢幕錄製與自動化,16GB 機型在夜間批次任務時容易發生交換,TCC 提示還會打斷無人值守流程。
- 網路出口不可控:家用寬頻或辦公室 NAT 對 WebSocket 長連線不友善,頻道離線常被誤判為「模型故障」,排錯方向一開始就偏了。
- 維運邊界模糊:本地睡眠、系統更新、Spotlight 索引與 launchd 守護疊在一起,很難區分是 Gateway 掛了,還是 macOS 把程序暫停了。
Remote 雙機拓撲的核心收益是職責拆分:遠端裸金屬 Mac(例如 CALMVPS 香港、新加坡、美西節點)承擔 Gateway、頻道與排程;本地 Mac僅作帶 UI/TCC 的 Node,透過 node host 把 Canvas、Camera、Screen 與 system.run 暴露給遠端 Gateway。控制面仍走 18789,由 macOS App 自動維護 SSH 控制隧道,不必手寫大量連接埠轉發腳本。
選型口訣:「Gateway 上雲、Node 留本地、控制面只走 18789」——先把拓撲畫清楚,再談 M4 檔位與租期。
02 Local 單機與 Remote 雙機決策矩陣
並非每個團隊都需要立刻上雙機。下面用對照表把「繼續 Local」與「切換 Remote」的邊界說清楚,便於評審會一次對齊。
| 維度 | Local(Gateway 在本機) | Remote(Gateway 在 CALMVPS 裸金屬) |
|---|---|---|
| 適用階段 | 個人驗證、單頻道 Bot | 7×24 頻道、多 Agent、跨時區 Cron |
| 本機職責 | Gateway + Node 一體 | 僅 Node(TCC、Canvas、system.run) |
| 遠端職責 | 無 | Gateway、launchd 常駐、日誌落盤 |
| 控制面接入 | 127.0.0.1:18789 直連 | SSH -L 或 Tailscale MagicDNS + App 隧道 |
| 典型風險 | 睡眠/更新中斷、記憶體爭用 | 隧道健康、版本不對齊、Token 不同步 |
| 建議租期 | 自有裝置即可 | Gateway 節點月/季租;本地無需增購 |
若你還需要多區域 Hub-and-Spoke(Gateway 在使用者密集區、Worker 在次密集區),Remote 雙機是前置條件;區域對照可參考站內 OpenClaw 遠端 Mac 節點選型文,本文聚焦「一台遠端 Gateway + 一台本地 Node」的最小可生產拓撲。
03 在 CALMVPS 裸金屬上部署 Gateway
遠端節點建議選與使用者/頻道出口最近的 CALMVPS 區域(香港、日本、韓國、新加坡、美東、美西),Gateway 僅監聽 loopback,由 SSH 或 Tailscale 暴露控制面,避免把 Web UI 直接綁定公網。安裝指令以 OpenClaw 官方安裝腳本為準(發版後請再次開啟連結核對):
https://openclaw.ai/install.sh
macOS 平台說明(Local/Remote 模式、launchd 標籤 ai.openclaw.gateway)見官方文件:
https://docs.openclaw.ai/platforms/macos
curl -fsSL https://openclaw.ai/install.sh | bash
openclaw onboard --install-daemon
openclaw gateway status
launchctl kickstart -k gui/$UID/ai.openclaw.gateway
- Node 執行環境:官方建議以 Node 作為 Gateway 執行環境;裸金屬上請固定主版本,避免 launchd 與互動式 shell 各用一套 Node。
- 狀態目錄:勿將
OPENCLAW_STATE_DIR放在 iCloud 同步路徑;建議~/.openclaw,與openclaw doctor告警一致。 - 磁碟預留:日誌、Cron 歷史與 Memory 落盤會持續成長;生產 Gateway 建議至少預留 80GB 專用於 OpenClaw 目錄,必要時選 1TB/2TB 檔位,或以並聯資源拆佇列。
04 本地 macOS App 切換 Remote 與 SSH/Tailscale 六步
本地 Mac 安裝 OpenClaw.app 並完成 TCC 權限清單後,依下列六步切換 Remote 模式(行為描述依官方 macOS 文件,版本升級後請以文件為準):
- 確認遠端 Gateway 健康:在 CALMVPS 節點執行
openclaw gateway status,確保 18789 在 loopback 可探活。 - 準備 SSH 免密或金鑰:本地 App 建立控制隧道時使用 BatchMode;為維運帳號設定金鑰登入,避免互動式密碼導致隧道半啟動。
- (可選)接入 Tailscale:若團隊已在 tailnet 內,優先以 MagicDNS 主機名稱發現 Gateway,tailnet IP 變動時比裸 IP 更穩定。
- App 內切換 Remote 模式:在 OpenClaw.app 選擇 Remote,填入遠端主機;App 會複用或重建
ssh -N -L 18789:127.0.0.1:18789形態的控制隧道,不在本機 spawn Gateway 子程序。 - 啟動本地 node host:Remote 模式下 App 會啟動 node host 服務,使遠端 Gateway 能呼叫本機 Canvas、Camera、Screen 與
system.run(經 App 內 Exec approvals 策略)。 - 以除錯 CLI 對照:在本地倉庫
apps/macos下可執行swift run openclaw-mac connect --json與discover --timeout 3000 --json,與 App 同一套發現/握手邏輯對拍,快速區分「隧道問題」或「Gateway 設定問題」。
macOS 遠端存取專題(Direct ws/wss 與真實用戶端 IP 上報)見:
https://docs.openclaw.ai/platforms/mac/remote
ssh -N -L 18789:127.0.0.1:18789 user@your-calmvps-node
curl -fsS http://127.0.0.1:18789/healthz
經 SSH 隧道接入時,Gateway 側 node IP 可能顯示 127.0.0.1,屬預期行為;若需真實 IP,請改採 Direct ws/wss(見 remote 文件)。
05 18789 控制隧道與常見報錯速查
雙機拓撲裡,多數「連不上」集中在控制隧道與版本對齊,而非模型供應商。下面整理可引用的硬參數與報錯對照。
- 預設 Gateway WebSocket 連接埠:
18789(官方 macOS 遠端連線說明);控制隧道本地連接埠與遠端保持一致,App 會複用健康隧道而非隨機本地連接埠。 - LaunchAgent 標籤:
ai.openclaw.gateway(使用OPENCLAW_PROFILE時為ai.openclaw.<profile>);排錯可用launchctl kickstart -k gui/$UID/ai.openclaw.gateway。 - Exec approvals 路徑:本地
system.run策略位於~/.openclaw/exec-approvals.json,與遠端 Gateway 設定分離,遷移節點時勿漏備份。
| 現象 | 優先檢查 | 首選修復 |
|---|---|---|
| App 顯示 Gateway 不可達 | SSH 隧道是否存活、18789 是否被占用 | 重啟 App 隧道;遠端 lsof -i :18789 查衝突 |
| 健康檢查 OK 但頻道離線 | Gateway 與 CLI/App 版本是否一致 | 兩端 openclaw --version 對齊後重啟 Gateway |
| node IP 始終 127.0.0.1 | 是否經 SSH 隧道接入 | 預期行為;需真實 IP 時改 Direct ws/wss |
| Canvas/相機無回應 | 本地 node host 是否執行、TCC 是否授予 | Remote 模式下確認 node host;重走權限清單 |
| Tailscale 發現失敗 | MagicDNS 是否啟用、主機名稱是否變更 | 以 MagicDNS 名稱重設;避免寫死 tailnet IP |
實務案例:某 iOS 團隊將 Gateway 與 Discord/Telegram 頻道放在 CALMVPS 新加坡節點(月租 M4 24GB),本地 MacBook Pro 僅作 Node 執行 screen.record 與 Xcode 旁路腳本;尖峰以並聯資源加一台週租 Worker 跑批次建置,Gateway 不動,頻道工作階段不中斷。此拆法比「本地單機扛一切」更少夜間告警。
06 M4 檔位、儲存、租期與採購清單
雙機拓撲下,資源配置要依角色而非「整機一刀切」:
- 遠端 Gateway(CALMVPS):多頻道 + Cron 建議 M4 24GB 起;Hub 節點或本地模型兜底選 M4 Pro;磁碟 1TB 驗證、2TB 生產較省心。
- 本地 Node Mac:以 TCC 與 UI 工具為主,16GB 通常足夠;瓶頸多在權限與網路,而非 Gateway 算力。
- 並聯資源:一次性資料回灌或平行建置用日/週租 Worker,避免抬升 Hub 檔位。
- 租期組合:Gateway 節點月/季租鎖算力,脈衝任務用日/週租並聯,總成本往往低於單機頂配長線租用。
把 Gateway 留在個人筆電或家用 NAS 上,常見短板是長連線抖動、睡眠中斷與無法稽核的 Token 混用;純雲端 Linux VPS 又缺少 macOS TCC 與 Apple 工具鏈,Remote 雙機裡的「本地 Node」無法取代。對需要穩定 18789 控制面、跨區域裸金屬與可重現排錯的團隊,CALMVPS 多區域裸金屬 Mac更適合作為 Gateway 宿主:獨佔 Apple Silicon、7×24 在線、約 120 秒交付,搭配 M4 Pro 與並聯資源可在不升檔的前提下吸收頻道與工作階段尖峰。採購與節點列表見 CALMVPS 定價頁。