CLI commands
Node
openclaw node
เรียกใช้โฮสต์โหนดแบบไม่มีส่วนติดต่อผู้ใช้ที่เชื่อมต่อกับ Gateway WebSocket และเปิดให้ใช้
system.run / system.which บนเครื่องนี้
ทำไมต้องใช้โฮสต์โหนด?
ใช้โฮสต์โหนดเมื่อคุณต้องการให้เอเจนต์เรียกใช้คำสั่งบนเครื่องอื่นในเครือข่ายของคุณ โดยไม่ต้องติดตั้งแอปคู่หู macOS แบบเต็มไว้ที่นั่น
กรณีใช้งานทั่วไป:
- เรียกใช้คำสั่งบนเครื่อง Linux/Windows ระยะไกล (เซิร์ฟเวอร์บิลด์, เครื่องแล็บ, NAS)
- ทำให้ exec ยังคงอยู่ในแซนด์บ็อกซ์บน Gateway แต่ส่งต่อการรันที่ได้รับอนุมัติไปยังโฮสต์อื่น
- จัดหาเป้าหมายการประมวลผลแบบเบาและไม่มีส่วนติดต่อผู้ใช้สำหรับโหนดระบบอัตโนมัติหรือ CI
การประมวลผลยังคงถูกควบคุมด้วยการอนุมัติ execและ allowlist รายเอเจนต์บน โฮสต์โหนด ดังนั้นคุณจึงสามารถจำกัดขอบเขตและกำหนดสิทธิ์การเข้าถึงคำสั่งได้อย่างชัดเจน
พร็อกซีเบราว์เซอร์ (ไม่ต้องตั้งค่า)
โฮสต์โหนดจะประกาศพร็อกซีเบราว์เซอร์โดยอัตโนมัติ หากไม่ได้ปิดใช้ browser.enabled
บนโหนด ซึ่งทำให้เอเจนต์ใช้ระบบอัตโนมัติของเบราว์เซอร์บนโหนดนั้นได้
โดยไม่ต้องตั้งค่าเพิ่มเติม
โดยค่าเริ่มต้น พร็อกซีจะเปิดเผยพื้นผิวโปรไฟล์เบราว์เซอร์ปกติของโหนด หากคุณ
ตั้งค่า nodeHost.browserProxy.allowProfiles พร็อกซีจะกลายเป็นแบบจำกัด:
การกำหนดเป้าหมายโปรไฟล์ที่ไม่ได้อยู่ใน allowlist จะถูกปฏิเสธ และเส้นทาง
สร้าง/ลบโปรไฟล์แบบถาวรจะถูกบล็อกผ่านพร็อกซี
ปิดใช้บนโหนดได้หากจำเป็น:
{
nodeHost: {
browserProxy: {
enabled: false,
},
},
}
เรียกใช้ (เบื้องหน้า)
openclaw node run --host <gateway-host> --port 18789
ตัวเลือก:
--host <host>: โฮสต์ Gateway WebSocket (ค่าเริ่มต้น:127.0.0.1)--port <port>: พอร์ต Gateway WebSocket (ค่าเริ่มต้น:18789)--tls: ใช้ TLS สำหรับการเชื่อมต่อ Gateway--tls-fingerprint <sha256>: ลายนิ้วมือใบรับรอง TLS ที่คาดไว้ (sha256)--node-id <id>: แทนที่รหัสโหนด (ล้างโทเค็นการจับคู่)--display-name <name>: แทนที่ชื่อที่แสดงของโหนด
การยืนยันตัวตน Gateway สำหรับโฮสต์โหนด
openclaw node run และ openclaw node install แก้ค่าการยืนยันตัวตน Gateway จาก config/env (ไม่มีแฟล็ก --token/--password บนคำสั่งโหนด):
- ตรวจสอบ
OPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORDก่อน - จากนั้นใช้ค่าท้องถิ่นสำรอง:
gateway.auth.token/gateway.auth.password - ในโหมดท้องถิ่น โฮสต์โหนดจงใจไม่สืบทอด
gateway.remote.token/gateway.remote.password - หากกำหนดค่า
gateway.auth.token/gateway.auth.passwordอย่างชัดเจนผ่าน SecretRef และแก้ค่าไม่ได้ การแก้ค่าการยืนยันตัวตนของโหนดจะปิดโดยปริยาย (ไม่มี remote fallback มาปิดบัง) - ใน
gateway.mode=remoteฟิลด์ไคลเอนต์ระยะไกล (gateway.remote.token/gateway.remote.password) จะมีสิทธิ์ใช้งานได้ด้วยตามกฎลำดับความสำคัญของระยะไกล - การแก้ค่าการยืนยันตัวตนของโฮสต์โหนดจะเคารพเฉพาะตัวแปร env
OPENCLAW_GATEWAY_*
สำหรับโหนดที่เชื่อมต่อกับ Gateway ws:// ที่ไม่ใช่ local loopback บนเครือข่ายส่วนตัว
ที่เชื่อถือได้ ให้ตั้งค่า OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 หากไม่มีค่านี้ การเริ่มต้นโหนด
จะปิดโดยปริยายและขอให้คุณใช้ wss://, ทันเนล SSH หรือ Tailscale
นี่เป็นการเลือกเข้าร่วมผ่านสภาพแวดล้อมของกระบวนการ ไม่ใช่คีย์ config openclaw.json
openclaw node install จะบันทึกค่านี้ไว้ในบริการโหนดที่ถูกควบคุมเมื่อค่าอยู่ใน
สภาพแวดล้อมของคำสั่งติดตั้ง
บริการ (เบื้องหลัง)
ติดตั้งโฮสต์โหนดแบบไม่มีส่วนติดต่อผู้ใช้เป็นบริการผู้ใช้
openclaw node install --host <gateway-host> --port 18789
ตัวเลือก:
--host <host>: โฮสต์ Gateway WebSocket (ค่าเริ่มต้น:127.0.0.1)--port <port>: พอร์ต Gateway WebSocket (ค่าเริ่มต้น:18789)--tls: ใช้ TLS สำหรับการเชื่อมต่อ Gateway--tls-fingerprint <sha256>: ลายนิ้วมือใบรับรอง TLS ที่คาดไว้ (sha256)--node-id <id>: แทนที่รหัสโหนด (ล้างโทเค็นการจับคู่)--display-name <name>: แทนที่ชื่อที่แสดงของโหนด--runtime <runtime>: รันไทม์บริการ (nodeหรือbun)--force: ติดตั้งใหม่/เขียนทับหากติดตั้งไว้แล้ว
จัดการบริการ:
openclaw node status
openclaw node start
openclaw node stop
openclaw node restart
openclaw node uninstall
ใช้ openclaw node run สำหรับโฮสต์โหนดเบื้องหน้า (ไม่มีบริการ)
คำสั่งบริการรองรับ --json สำหรับเอาต์พุตที่เครื่องอ่านได้
โฮสต์โหนดจะลองเชื่อมต่อใหม่เมื่อ Gateway รีสตาร์ทและเครือข่ายปิดภายในกระบวนการ หาก Gateway รายงานการหยุดพักการยืนยันตัวตนด้วยโทเค็น/รหัสผ่าน/bootstrap แบบสิ้นสุด โฮสต์โหนด จะบันทึกรายละเอียดการปิดและออกด้วยสถานะไม่เป็นศูนย์ เพื่อให้ launchd/systemd สามารถรีสตาร์ทด้วย config และข้อมูลประจำตัวชุดใหม่ได้ การหยุดพักที่ต้องจับคู่จะยังอยู่ในโฟลว์ เบื้องหน้า เพื่อให้คำขอที่รอดำเนินการสามารถได้รับการอนุมัติ
การจับคู่
การเชื่อมต่อครั้งแรกจะสร้างคำขอจับคู่อุปกรณ์ที่รอดำเนินการ (role: node) บน Gateway
อนุมัติผ่าน:
openclaw devices list
openclaw devices approve <requestId>
บนเครือข่ายโหนดที่ควบคุมอย่างเข้มงวด ผู้ควบคุม Gateway สามารถเลือกเข้าร่วมอย่างชัดเจน เพื่ออนุมัติการจับคู่โหนดครั้งแรกจาก CIDR ที่เชื่อถือได้โดยอัตโนมัติ:
{
gateway: {
nodes: {
pairing: {
autoApproveCidrs: ["192.168.1.0/24"],
},
},
},
}
ค่านี้ถูกปิดใช้โดยค่าเริ่มต้น ใช้กับการจับคู่ role: node ใหม่ที่
ไม่มี scope ที่ร้องขอเท่านั้น ไคลเอนต์ผู้ควบคุม/เบราว์เซอร์, Control UI, WebChat และการอัปเกรด role,
scope, metadata หรือ public-key ยังคงต้องอนุมัติด้วยตนเอง
หากโหนดลองจับคู่ใหม่พร้อมรายละเอียดการยืนยันตัวตนที่เปลี่ยนไป (role/scopes/public key)
คำขอที่รอดำเนินการก่อนหน้าจะถูกแทนที่ และมีการสร้าง requestId ใหม่
เรียกใช้ openclaw devices list อีกครั้งก่อนอนุมัติ
โฮสต์โหนดจัดเก็บรหัสโหนด โทเค็น ชื่อที่แสดง และข้อมูลการเชื่อมต่อ Gateway ไว้ใน
~/.openclaw/node.json
การอนุมัติ exec
system.run ถูกควบคุมด้วยการอนุมัติ exec ท้องถิ่น:
~/.openclaw/exec-approvals.json- การอนุมัติ exec
openclaw approvals --node <id|name|ip>(แก้ไขจาก Gateway)
สำหรับ exec โหนดแบบ async ที่ได้รับอนุมัติ OpenClaw จะเตรียม systemRunPlan มาตรฐาน
ก่อนแสดงพรอมต์ การส่งต่อ system.run ที่ได้รับอนุมัติภายหลังจะนำแผนที่จัดเก็บไว้นั้น
กลับมาใช้ ดังนั้นการแก้ไขฟิลด์ command/cwd/session หลังจากสร้างคำขออนุมัติแล้ว
จะถูกปฏิเสธแทนที่จะเปลี่ยนสิ่งที่โหนดประมวลผล