CLI commands

QR

openclaw qr

สร้าง QR สำหรับการจับคู่กับอุปกรณ์เคลื่อนที่และรหัสตั้งค่าจากการกำหนดค่า Gateway ปัจจุบัน

bash
openclaw qropenclaw qr --setup-code-onlyopenclaw qr --jsonopenclaw qr --remoteopenclaw qr --limitedopenclaw qr --url wss://gateway.example/ws

แอป OpenClaw อย่างเป็นทางการสำหรับ iOS และ Android จะเชื่อมต่อโดยอัตโนมัติเมื่อข้อมูลเมตาของรหัสตั้งค่าตรงกัน หากคำขอยังคงรอการดำเนินการ (เช่น มาจากไคลเอนต์ที่ไม่เป็นทางการหรือข้อมูลเมตาไม่ตรงกัน) ให้ตรวจสอบและอนุมัติคำขอ:

bash
openclaw devices listopenclaw devices approve <requestId>

ตัวเลือก

  • --remote: เลือกใช้ gateway.remote.url ก่อน และจะใช้ gateway.tailscale.mode=serve|funnel แทนหากไม่ได้ตั้งค่า URL ดังกล่าว โดยไม่คำนึงถึง Plugin device-pair publicUrl
  • --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 ไม่พร้อมใช้งาน คำสั่งจะล้มเหลวทันที

ที่เกี่ยวข้อง

Was this useful?
On this page

On this page