跳到內容

如何透過遠端 Gateway 執行 OpenClaw.app

開發時最煩人的事情之一,就是要把本地端的 App 連接到遠端伺服器上的服務。如果你不想把埠號(Port)暴露在公網上,又懶得每次手動連線,SSH Tunnel 就是你的救星。

這份指南會帶你一步步搞定 OpenClaw.app 與遠端 Gateway 的連線,讓你像在本地端開發一樣順暢。

內容已併入 Remote Access。請參閱該頁面以獲取最新指南。

OpenClaw.app 使用 SSH Tunnel 連接到遠端 Gateway。這份指南會教你如何設定。

flowchart TB
subgraph Client["Client Machine"]
direction TB
A["OpenClaw.app"]
B["ws://127.0.0.1:18789\n(local port)"]
T["SSH Tunnel"]
A --> B
B --> T
end
subgraph Remote["Remote Machine"]
direction TB
C["Gateway WebSocket"]
D["ws://127.0.0.1:18789"]
C --> D
end
T --> C

編輯 ~/.ssh/config 並加入:

Terminal window
Host remote-gateway
HostName <REMOTE_IP> # e.g., 172.27.187.184
User <REMOTE_USER> # e.g., jefferson
LocalForward 18789 127.0.0.1:18789
IdentityFile ~/.ssh/id_rsa

將 <REMOTE_IP> 和 <REMOTE_USER> 替換成你的實際數值。

將你的公鑰(Public Key)複製到遠端機器(只需輸入一次密碼):

Terminal window
ssh-copy-id -i ~/.ssh/id_rsa <REMOTE_USER>@<REMOTE_IP>
Terminal window
launchctl setenv OPENCLAW_GATEWAY_TOKEN "<your-token>"
Terminal window
ssh -N remote-gateway &
Terminal window
# Quit OpenClaw.app (⌘Q), then reopen:
open /path/to/OpenClaw.app

現在 App 會透過 SSH Tunnel 連接到遠端 Gateway。


為了讓 SSH Tunnel 在你登入時自動啟動,可以建立一個 Launch Agent。

將以下內容儲存為 ~/Library/LaunchAgents/ai.openclaw.ssh-tunnel.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>ai.openclaw.ssh-tunnel</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/ssh</string>
<string>-N</string>
<string>remote-gateway</string>
</array>
<key>KeepAlive</key>
<true/>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Terminal window
launchctl bootstrap gui/$UID ~/Library/LaunchAgents/ai.openclaw.ssh-tunnel.plist

現在 Tunnel 會:

  • 在你登入時自動啟動
  • 如果當掉會自動重啟
  • 持續在背景執行

舊版註記:如果存在任何舊的 com.openclaw.ssh-tunnel LaunchAgent,請將其移除。


檢查 Tunnel 是否正在執行:

Terminal window
ps aux | grep "ssh -N remote-gateway" | grep -v grep
lsof -i :18789

重啟 Tunnel:

Terminal window
launchctl kickstart -k gui/$UID/ai.openclaw.ssh-tunnel

停止 Tunnel:

Terminal window
launchctl bootout gui/$UID/ai.openclaw.ssh-tunnel

組件功能
LocalForward 18789 127.0.0.1:18789將本地端 Port 18789 轉發到遠端 Port 18789
ssh -N執行 SSH 但不執行遠端指令(僅進行 Port Forwarding)
KeepAlive如果 Tunnel 崩潰會自動重啟
RunAtLoad當 Agent 載入時啟動 Tunnel

OpenClaw.app 會連線到你本地機器的 ws://127.0.0.1:18789。SSH Tunnel 會將該連線轉發到執行 Gateway 的遠端機器 Port 18789。

如有任何問題,請諮詢 AI Setup Assistant。

OpenClaw

OpenClaw Expert

還是卡住了?

如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。