Uruchamianie OpenClaw.app ze zdalnym Gateway¶
OpenClaw.app używa tunelowania SSH do łączenia się ze zdalnym gateway. Ten przewodnik pokazuje, jak to skonfigurować.
Przegląd¶
%%{init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#ffffff',
'primaryTextColor': '#000000',
'primaryBorderColor': '#000000',
'lineColor': '#000000',
'secondaryColor': '#f9f9fb',
'tertiaryColor': '#ffffff',
'clusterBkg': '#f9f9fb',
'clusterBorder': '#000000',
'nodeBorder': '#000000',
'mainBkg': '#ffffff',
'edgeLabelBackground': '#ffffff'
}
}}%%
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
Szybka konfiguracja¶
Krok 1: Dodaj konfigurację SSH¶
Edytuj ~/.ssh/config i dodaj:
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
Zastąp <REMOTE_IP> oraz <REMOTE_USER> własnymi wartościami.
Krok 2: Skopiuj klucz SSH¶
Skopiuj swój klucz publiczny na zdalną maszynę (wprowadź hasło jednorazowo):
ssh-copy-id -i ~/.ssh/id_rsa <REMOTE_USER>@<REMOTE_IP>
Krok 3: Ustaw token Gateway¶
launchctl setenv OPENCLAW_GATEWAY_TOKEN "<your-token>"
Krok 4: Uruchom tunel SSH¶
ssh -N remote-gateway &
Krok 5: Uruchom ponownie OpenClaw.app¶
# Quit OpenClaw.app (⌘Q), then reopen:
open /path/to/OpenClaw.app
Aplikacja połączy się teraz ze zdalnym gateway przez tunel SSH.
Automatyczne uruchamianie tunelu przy logowaniu¶
Aby tunel SSH uruchamiał się automatycznie po zalogowaniu, utwórz agenta uruchamiania (Launch Agent).
Utwórz plik PLIST¶
Zapisz to jako ~/Library/LaunchAgents/bot.molt.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>bot.molt.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>
Załaduj Launch Agent¶
launchctl bootstrap gui/$UID ~/Library/LaunchAgents/bot.molt.ssh-tunnel.plist
Tunel będzie teraz:
- Uruchamiany automatycznie po zalogowaniu
- Restartowany w przypadku awarii
- Działał w tle
Uwaga dotycząca starszych konfiguracji: usuń wszelkie pozostałe LaunchAgent com.openclaw.ssh-tunnel, jeśli istnieją.
Rozwiązywanie problemów¶
Sprawdź, czy tunel działa:
ps aux | grep "ssh -N remote-gateway" | grep -v grep
lsof -i :18789
Uruchom ponownie tunel:
launchctl kickstart -k gui/$UID/bot.molt.ssh-tunnel
Zatrzymaj tunel:
launchctl bootout gui/$UID/bot.molt.ssh-tunnel
Jak to działa¶
| Komponent | Co robi |
|---|---|
LocalForward 18789 127.0.0.1:18789 |
Przekierowuje lokalny port 18789 na zdalny port 18789 |
ssh -N |
SSH bez wykonywania zdalnych poleceń (tylko przekierowanie portów) |
KeepAlive |
Automatycznie restartuje tunel w razie awarii |
RunAtLoad |
Uruchamia tunel podczas ładowania agenta |
OpenClaw.app łączy się z ws://127.0.0.1:18789 na Twojej maszynie klienckiej. Tunel SSH przekazuje to połączenie do portu 18789 na zdalnej maszynie, na której działa Gateway.