遠端 OpenClaw (macOS ⇄ 遠端主機)
此流程讓 macOS 應用程式成為運行於另一台主機(桌面/伺服器)上的 OpenClaw Gateway 的完整遙控器。這就是應用程式的 Remote over SSH(遠端執行)功能。所有功能——健康檢查、語音喚醒轉發與 Web Chat——皆重複使用 Settings → General 中的相同遠端 SSH 設定。模式
- Local (此 Mac): 所有東西皆在筆電上運行。不涉及 SSH。
- Remote over SSH (預設): OpenClaw 指令在遠端主機上執行。Mac 應用程式使用
-o BatchMode加上您選擇的身分/金鑰與本地通訊埠轉發 (port-forward) 開啟 SSH 連線。 - Remote direct (ws/wss): 無 SSH 通道。Mac 應用程式直接連接至 Gateway URL(例如,透過 Tailscale Serve 或公開 HTTPS 反向代理)。
遠端傳輸 (Remote Transports)
Remote 模式支援兩種傳輸方式:- SSH tunnel (預設): 使用
ssh -N -L ...將 Gateway 通訊埠轉發至 localhost。Gateway 會看到節點 IP 為127.0.0.1,因為通道是 loopback。 - Direct (ws/wss): 直接連接至 Gateway URL。Gateway 會看到真實的客戶端 IP。
遠端主機先決條件
- 安裝 Node + pnpm 並建置/安裝 OpenClaw CLI (
pnpm install && pnpm build && pnpm link --global)。 - 確保
openclaw在非互動式 Shell 的 PATH 中(若需要,建立 symlink 至/usr/local/bin或/opt/homebrew/bin)。 - 開啟 SSH 金鑰認證。我們推薦使用 Tailscale IP 以獲得穩定的非 LAN 可達性。
macOS 應用程式設定
- 開啟 Settings → General。
- 在 OpenClaw runs 下,選擇 Remote over SSH 並設定:
- Transport: SSH tunnel 或 Direct (ws/wss)。
- SSH target:
user@host(可選:port)。- 若 Gateway 位於同一 LAN 並廣播 Bonjour,從發現列表中選擇它以自動填寫此欄位。
- Gateway URL (僅限 Direct):
wss://gateway.example.ts.net(或ws://...用於 Local/LAN)。 - Identity file (進階): 您的金鑰路徑。
- Project root (進階): 用於指令的遠端 Checkout 路徑。
- CLI path (進階): 可選的可執行
openclaw入口點/二進位檔路徑(廣播時自動填寫)。
- 點擊 Test remote。成功表示遠端
openclaw status --json執行正確。失敗通常表示 PATH/CLI 問題;exit 127 表示遠端找不到 CLI。 - 健康檢查與 Web Chat 現在會自動通過此 SSH 通道運行。
Web Chat
- SSH tunnel: Web Chat 透過轉發的 WebSocket 控制通訊埠(預設 18789)連接至 Gateway。
- Direct (ws/wss): Web Chat 直接連接至配置的 Gateway URL。
- 不再有獨立的 WebChat HTTP 伺服器。
權限
- 遠端主機需要與本地相同的 TCC 核准(自動化、輔助使用、螢幕錄製、麥克風、語音辨識、通知)。在該機器上執行 Onboarding 以一次性授權。
- 節點透過
node.list/node.describe廣播其權限狀態,以便 Agent 知道哪些功能可用。
安全性注意事項
- 遠端主機優先使用 loopback bind,並透過 SSH 或 Tailscale 連接。
- 若將 Gateway 綁定至非 loopback 介面,請要求 token/密碼認證。
- 參閱 Security 與 Tailscale。
WhatsApp 登入流程 (遠端)
- 在遠端主機上 執行
openclaw channels login --verbose。用手機上的 WhatsApp 掃描 QR Code。 - 若認證過期,在該主機上重新執行登入。健康檢查會顯示連結問題。
故障排除
- exit 127 / not found:
openclaw不在非登入 Shell 的 PATH 中。將其加入/etc/paths、您的 Shell rc,或 symlink 至/usr/local/bin//opt/homebrew/bin。 - Health probe failed: 檢查 SSH 可達性、PATH,以及 Baileys 是否已登入 (
openclaw status --json)。 - Web Chat 卡住: 確認遠端主機上的 Gateway 正在運行,且轉發的通訊埠與 Gateway WS 通訊埠相符;UI 需要健康的 WS 連線。
- Node IP 顯示 127.0.0.1: SSH 通道的預期行為。若希望 Gateway 看到真實客戶端 IP,請將 Transport 切換為 Direct (ws/wss)。
- Voice Wake: 觸發詞在 Remote 模式下會自動轉發;無需獨立的轉發器。
通知音效
使用openclaw 與 node.invoke 為每個通知選擇音效,例如: