Community translations by veiseule.ai — Help improve them on Crowdin
Skip to main content

Chạy OpenClaw.app với Gateway từ xa

OpenClaw.app dùng đường hầm SSH để kết nối tới gateway từ xa. Hướng dẫn này cho bạn thấy cách thiết lập.

Tổng quan

%%{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

Thiết lập nhanh

Bước 1: Thêm cấu hình SSH

Chỉnh sửa ~/.ssh/config và thêm:

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

Thay <REMOTE_IP><REMOTE_USER> bằng giá trị của bạn.

Bước 2: Sao chép khóa SSH

Sao chép khóa công khai của bạn lên máy từ xa (chỉ cần nhập mật khẩu một lần):

ssh-copy-id -i ~/.ssh/id_rsa <REMOTE_USER>@<REMOTE_IP>

Bước 3: Đặt Gateway Token

launchctl setenv OPENCLAW_GATEWAY_TOKEN "<your-token>"

Bước 4: Khởi động đường hầm SSH

ssh -N remote-gateway &

Bước 5: Khởi động lại OpenClaw.app

# Quit OpenClaw.app (⌘Q), then reopen:
open /path/to/OpenClaw.app

Ứng dụng bây giờ sẽ kết nối tới gateway từ xa thông qua đường hầm SSH.


Tự động khởi động đường hầm khi đăng nhập

Để đường hầm SSH tự động khởi động khi bạn đăng nhập, hãy tạo một Launch Agent.

Tạo file PLIST

Lưu file này thành ~/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>

Nạp Launch Agent

launchctl bootstrap gui/$UID ~/Library/LaunchAgents/bot.molt.ssh-tunnel.plist

Đường hầm bây giờ sẽ:

  • Tự động khởi động khi bạn đăng nhập
  • Tự khởi động lại nếu bị lỗi
  • Luôn chạy trong nền

Ghi chú cũ: nếu có, hãy xóa mọi LaunchAgent com.openclaw.ssh-tunnel còn sót lại.


Xử lý sự cố

Kiểm tra xem đường hầm có đang chạy không:

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

Khởi động lại đường hầm:

launchctl kickstart -k gui/$UID/bot.molt.ssh-tunnel

Dừng đường hầm:

launchctl bootout gui/$UID/bot.molt.ssh-tunnel

Cách hoạt động

Thành phần Chức năng
LocalForward 18789 127.0.0.1:18789 Chuyển tiếp cổng cục bộ 18789 tới cổng 18789 trên máy từ xa
ssh -N SSH không thực thi lệnh từ xa (chỉ chuyển tiếp cổng)
KeepAlive Tự động khởi động lại đường hầm nếu bị lỗi
RunAtLoad Khởi động đường hầm khi agent được nạp

OpenClaw.app kết nối tới ws://127.0.0.1:18789 trên máy khách của bạn. Đường hầm SSH chuyển tiếp kết nối đó tới cổng 18789 trên máy từ xa nơi Gateway đang chạy.