Hướng Dẫn Setup OpenClaw Node (Tiếng Việt)



title: “Hướng dẫn cài đặt OpenClaw Node giữa 2 VPS (qua Tailscale)” description: “Bài học thực chiến khi kết nối VPS Master và VPS Node thông qua mạng Tailscale, xử lý các lỗi config và systemd cứng đầu.” author: “SensaKai Team” date: 2026-02-06 tags: [“openclaw”, “vps”, “tailscale”, “devops”, “troubleshooting”]

Bối cảnh

Chúng ta có 2 VPS:

  • VPS 1 (Master): Đã cài OpenClaw Gateway, chạy trên WSL2.
  • VPS 2 (Node/Slave): Ubuntu Server, cần cài OpenClaw Node để thực thi lệnh từ xa.
  • Mạng: Cả 2 kết nối với nhau qua Tailscale VPN.

Kiến trúc triển khai

Để đảm bảo bảo mật và không cần mở port Public Internet, chúng ta sử dụng tính năng Tailscale Serve trên Master để tạo đường hầm HTTPS an toàn.

  • Master (VPS 1): Chạy Gateway, bind vào loopback, dùng Tailscale Serve để expose ra mạng nội bộ Tailnet dưới dạng HTTPS.
  • Node (VPS 2): Chạy OpenClaw Node Service, kết nối tới Master qua URL MagicDNS của Tailscale.

Phần 1: Cấu hình VPS Master (Gateway)

1. Cấu hình OpenClaw Gateway

Mở file ~/.openclaw/openclaw.json và cấu hình:

{
  "gateway": {
    "bind": "loopback",  // Chỉ nghe ở 127.0.0.1 (An toàn)
    "port": 18789,
    "tailscale": {
      "mode": "serve"    // Tự động bật Tailscale Serve HTTPS
    },
    // ... các config khác
  }
}

2. Khởi động và lấy URL

Restart Gateway:

openclaw gateway restart

Kiểm tra URL MagicDNS:

tailscale serve status
# Kết quả: https://vps1-name.tailnet-name.ts.net

(Ghi nhớ URL này để dùng cho VPS 2)


Phần 2: Cấu hình VPS Node (Slave)

Đây là phần “khó nhằn” nhất vì dễ gặp lỗi cache config hoặc systemd không nhận biến môi trường.

1. Cài đặt OpenClaw CLI

npm install -g openclaw

2. Xử lý lỗi “Kết nối lì lợm vào 127.0.0.1”

Trong thực tế, Node thường ưu tiên file config cũ hoặc mặc định kết nối về localhost. Giải pháp triệt để nhất là Hard-code tham số vào Systemd Service thay vì dùng file JSON.

Bước 1: Dừng service cũ (nếu có) và xóa file config rác:

systemctl --user stop openclaw-node.service
rm ~/.openclaw/node.json           # Quan trọng: File này thường gây lỗi cache
rm ~/.openclaw/openclaw.json       # Xóa luôn file config để tránh xung đột

Bước 2: Tạo file Systemd Service chuẩn “ép buộc” kết nối Remote: Tạo file ~/.config/systemd/user/openclaw-node.service với nội dung sau:

[Unit]
Description=OpenClaw Node Host (Remote)
After=network-online.target
Wants=network-online.target

[Service]
# Quan trọng: Dùng tham số dòng lệnh để override mọi config
ExecStart=/usr/bin/node /usr/lib/node_modules/openclaw/dist/index.js node run --host "vps1-name.tailnet-name.ts.net" --port 443 --tls

# Các thiết lập môi trường bổ trợ
Environment=HOME=/home/username
Environment="PATH=/usr/bin:/usr/local/bin:/bin"
# Token bắt buộc phải truyền qua ENV (CLI không hỗ trợ cờ --token)
Environment="OPENCLAW_GATEWAY_TOKEN=YOUR_MASTER_TOKEN_HERE"
# Fix lỗi SSL nếu Node kén chứng chỉ Let's Encrypt của Tailscale
Environment="NODE_TLS_REJECT_UNAUTHORIZED=0"

Restart=always
RestartSec=5
KillMode=process

[Install]
WantedBy=default.target

(Thay vps1-name...YOUR_MASTER_TOKEN_HERE bằng thông tin thật)

Bước 3: Kích hoạt và chạy Service

systemctl --user daemon-reload
systemctl --user enable openclaw-node.service
systemctl --user restart openclaw-node.service

Phần 3: Ghép đôi (Pairing)

Ngay sau khi Node chạy, nó sẽ gửi yêu cầu ghép đôi tới Master.

  1. Trên VPS 1 (Master): Kiểm tra danh sách chờ.

    openclaw devices list

    Kết quả sẽ thấy một thiết bị Role: node đang ở trạng thái Pending.

  2. Duyệt thiết bị:

    openclaw devices approve <REQUEST_ID>
  3. Hoàn tất: Sau khi duyệt, VPS 2 sẽ tự động kết nối lại và chuyển sang trạng thái Connected. Kiểm tra lại trên Master: openclaw nodes status

Bài học rút ra (Troubleshooting)

  1. Lỗi ECONNREFUSED 127.0.0.1 dai dẳng:

    • Thường do file ~/.openclaw/node.json cũ còn sót lại -> Cần xóa ngay.
    • Do lệnh openclaw node install ban đầu tạo ra file service có fix cứng --host 127.0.0.1.
  2. Lỗi unknown option '--token':

    • Lệnh openclaw node run không hỗ trợ tham số --token. Phải dùng biến môi trường OPENCLAW_GATEWAY_TOKEN.
  3. Lỗi kết nối SSL/TLS:

    • Khi dùng Tailscale Serve, phải thêm cờ --tls và port 443.
    • Nếu gặp lỗi chứng chỉ, thêm NODE_TLS_REJECT_UNAUTHORIZED=0.

Ghi chép bởi SensaKai Team - 2026