दूरस्थ Gateway के साथ OpenClaw.app चलाना¶
OpenClaw.app रिमोट गेटवे से कनेक्ट करने के लिए SSH टनलिंग का उपयोग करता है। यह गाइड आपको इसे सेट अप करने का तरीका दिखाती है।
अवलोकन¶
%%{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
त्वरित सेटअप¶
चरण 1: SSH Config जोड़ें¶
~/.ssh/config संपादित करें और जोड़ें:
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> को अपने मानों से बदलें।
चरण 2: SSH कुंजी कॉपी करें¶
अपनी सार्वजनिक कुंजी को दूरस्थ मशीन पर कॉपी करें (एक बार पासवर्ड दर्ज करें):
ssh-copy-id -i ~/.ssh/id_rsa <REMOTE_USER>@<REMOTE_IP>
चरण 3: Gateway टोकन सेट करें¶
launchctl setenv OPENCLAW_GATEWAY_TOKEN "<your-token>"
चरण 4: SSH टनल प्रारंभ करें¶
ssh -N remote-gateway &
चरण 5: OpenClaw.app पुनः प्रारंभ करें¶
# Quit OpenClaw.app (⌘Q), then reopen:
open /path/to/OpenClaw.app
अब ऐप SSH टनल के माध्यम से दूरस्थ Gateway से कनेक्ट होगा।
लॉगिन पर टनल स्वतः प्रारंभ करें¶
लॉगिन करते समय SSH टनल को स्वतः प्रारंभ कराने के लिए, एक Launch Agent बनाएँ।
PLIST फ़ाइल बनाएँ¶
इसे ~/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>
Launch Agent लोड करें¶
launchctl bootstrap gui/$UID ~/Library/LaunchAgents/bot.molt.ssh-tunnel.plist
अब टनल यह करेगी:
- लॉगिन करते ही स्वतः प्रारंभ होगी
- क्रैश होने पर पुनः प्रारंभ होगी
- पृष्ठभूमि में चलती रहेगी
विरासत नोट: यदि मौजूद हो, तो किसी भी शेष com.openclaw.ssh-tunnel LaunchAgent को हटा दें।
समस्या-निवारण¶
जाँचें कि टनल चल रही है या नहीं:
ps aux | grep "ssh -N remote-gateway" | grep -v grep
lsof -i :18789
टनल पुनः प्रारंभ करें:
launchctl kickstart -k gui/$UID/bot.molt.ssh-tunnel
टनल रोकें:
launchctl bootout gui/$UID/bot.molt.ssh-tunnel
यह कैसे काम करता है¶
| घटक | यह क्या करता है |
|---|---|
LocalForward 18789 127.0.0.1:18789 |
स्थानीय पोर्ट 18789 को दूरस्थ पोर्ट 18789 तक फ़ॉरवर्ड करता है |
ssh -N |
दूरस्थ कमांड निष्पादित किए बिना SSH (केवल पोर्ट फ़ॉरवर्डिंग) |
KeepAlive |
क्रैश होने पर टनल को स्वतः पुनः प्रारंभ करता है |
RunAtLoad |
एजेंट लोड होने पर टनल प्रारंभ करता है |
OpenClaw.app आपके क्लाइंट मशीन पर ws://127.0.0.1:18789 से कनेक्ट होता है। SSH टनल उस कनेक्शन को रिमोट मशीन के पोर्ट 18789 पर फ़ॉरवर्ड करती है जहाँ गेटवे चल रहा है।