CLI commands
QR
openclaw qr
สร้าง QR สำหรับการจับคู่กับอุปกรณ์เคลื่อนที่และรหัสตั้งค่าจากการกำหนดค่า Gateway ปัจจุบัน
openclaw qropenclaw qr --setup-code-onlyopenclaw qr --jsonopenclaw qr --remoteopenclaw qr --limitedopenclaw qr --url wss://gateway.example/wsแอป OpenClaw อย่างเป็นทางการสำหรับ iOS และ Android จะเชื่อมต่อโดยอัตโนมัติเมื่อข้อมูลเมตาของรหัสตั้งค่าตรงกัน หากคำขอยังคงรอการดำเนินการ (เช่น มาจากไคลเอนต์ที่ไม่เป็นทางการหรือข้อมูลเมตาไม่ตรงกัน) ให้ตรวจสอบและอนุมัติคำขอ:
openclaw devices listopenclaw devices approve <requestId>ตัวเลือก
--remote: เลือกใช้gateway.remote.urlก่อน และจะใช้gateway.tailscale.mode=serve|funnelแทนหากไม่ได้ตั้งค่า URL ดังกล่าว โดยไม่คำนึงถึง Plugindevice-pairpublicUrl--url <url>: แทนที่ URL ของ Gateway ที่ใช้ในเพย์โหลด--public-url <url>: แทนที่ URL สาธารณะที่ใช้ในเพย์โหลด--token <token>: แทนที่โทเค็น Gateway ที่โฟลว์บูตสแตรปใช้ยืนยันตัวตน--password <password>: แทนที่รหัสผ่าน Gateway ที่โฟลว์บูตสแตรปใช้ยืนยันตัวตน--limited: ไม่รวมสิทธิ์เข้าถึง Gateway ระดับผู้ดูแลระบบจากโทเค็นผู้ดำเนินการที่ส่งมอบ--setup-code-only: แสดงเฉพาะรหัสตั้งค่า--no-ascii: ข้ามการแสดงผล QR แบบ ASCII--json: ส่งออก JSON (setupCode,gatewayUrl,gatewayUrlsซึ่งเป็นทางเลือก,auth,access,accessDowngradedซึ่งเป็นทางเลือก,urlSource)
--token และ --password ไม่สามารถใช้ร่วมกันได้
เนื้อหาของรหัสตั้งค่า
รหัสตั้งค่ามี bootstrapToken แบบทึบแสงและมีอายุสั้น ไม่ใช่โทเค็น/รหัสผ่าน Gateway ที่ใช้ร่วมกัน สำหรับปลายทาง wss:// (หรือลูปแบ็กบนโฮสต์เดียวกัน) โฟลว์บูตสแตรปเริ่มต้นจะออก:
- โทเค็น
nodeหลักที่มีscopes: [] - โทเค็นส่งมอบ
operatorสำหรับอุปกรณ์เคลื่อนที่แบบเนทีฟที่มีสิทธิ์ครบถ้วน พร้อมoperator.admin,operator.approvals,operator.read,operator.talk.secretsและoperator.write
ใช้ --limited เพื่อคงโทเค็น Node เดิมไว้ แต่ไม่รวม operator.admin จากการส่งมอบให้ผู้ดำเนินการ รหัสตั้งค่าจะไม่ส่งมอบขอบเขตสิทธิ์สำหรับการแก้ไขการจับคู่โดยเด็ดขาด
การตั้งค่า ws:// ผ่าน LAN แบบข้อความธรรมดายังคงใช้งานได้ แต่ OpenClaw จะใช้โปรไฟล์แบบจำกัดโดยอัตโนมัติ เนื่องจากผู้สังเกตการณ์เครือข่ายอาจดักจับโทเค็นบูตสแตรปแบบ bearer และนำไปใช้แข่งได้ กำหนดค่า wss:// หรือ Tailscale Serve แล้วสร้างรหัสใหม่เพื่อรับสิทธิ์เข้าถึงแบบเต็ม
การกำหนด URL ของ Gateway
การจับคู่กับอุปกรณ์เคลื่อนที่จะปฏิเสธการทำงานโดยค่าเริ่มต้นสำหรับ URL ของ Gateway แบบ Tailscale/สาธารณะที่ใช้ ws://: ให้ใช้ Tailscale Serve/Funnel หรือ URL ของ Gateway แบบ wss:// สำหรับกรณีดังกล่าว ที่อยู่ LAN ส่วนตัวและโฮสต์ Bonjour แบบ .local ยังคงรองรับผ่าน ws:// แบบข้อความธรรมดา โดยมีสิทธิ์เข้าถึงของผู้ดำเนินการแบบจำกัดตามที่อธิบายไว้ข้างต้น
เมื่อ URL ของ Gateway ที่เลือกมาจาก gateway.bind=lan OpenClaw จะตรวจสอบเส้นทาง tailscale serve status --json แบบถาวรด้วย โดยจะรวมราก Serve แบบ HTTPS ใดๆ ที่พร็อกซีพอร์ตลูปแบ็กของ Gateway ที่ใช้งานอยู่เป็นเส้นทางสำรอง คำสั่ง QR จะเพิ่มเส้นทางสำรองนี้เฉพาะสำหรับ lan ส่วน custom และ tailnet จะคงเส้นทางที่ประกาศไว้อย่างชัดเจน ไคลเอนต์ iOS ปัจจุบันจะตรวจสอบเส้นทางที่ประกาศตามลำดับและบันทึกเส้นทางแรกที่เข้าถึงได้ ส่วนฟิลด์ url แบบเดิมจะคงไว้โดยไม่เปลี่ยนแปลงสำหรับไคลเอนต์รุ่นเก่า
เมื่อใช้ --remote จำเป็นต้องระบุ gateway.remote.url หรือ gateway.tailscale.mode=serve|funnel อย่างใดอย่างหนึ่ง
การกำหนดการยืนยันตัวตน (ไม่มี --remote)
เมื่อไม่ได้ส่งตัวเลือกแทนที่การยืนยันตัวตนผ่าน CLI ระบบจะแก้ไข SecretRefs สำหรับการยืนยันตัวตนของ Gateway ภายในเครื่องดังนี้:
| เงื่อนไข | ค่าที่แก้ไขได้ |
|---|---|
gateway.auth.mode="token" หรือโหมดที่อนุมานโดยไม่มีแหล่งรหัสผ่านที่มีผลเหนือกว่า |
gateway.auth.token |
gateway.auth.mode="password" หรือโหมดที่อนุมานโดยไม่มีโทเค็นที่มีผลเหนือกว่าจากการยืนยันตัวตน/สภาพแวดล้อม |
gateway.auth.password |
มีการกำหนดค่าทั้ง gateway.auth.token และ gateway.auth.password (รวมถึง SecretRefs) และไม่ได้ตั้งค่า gateway.auth.mode |
ล้มเหลว ให้ตั้งค่า gateway.auth.mode อย่างชัดเจน |
การกำหนดการยืนยันตัวตน (--remote)
หากข้อมูลประจำตัวระยะไกลที่มีผลและใช้งานอยู่ถูกกำหนดค่าเป็น SecretRefs และไม่ได้ส่งทั้ง --token และ --password คำสั่งจะแก้ไขค่าดังกล่าวจากสแนปช็อต Gateway ที่ใช้งานอยู่ หาก Gateway ไม่พร้อมใช้งาน คำสั่งจะล้มเหลวทันที