---
read_when:
    - คุณต้องการจับคู่แอป Node บนอุปกรณ์เคลื่อนที่กับ Gateway อย่างรวดเร็ว
    - คุณต้องใช้เอาต์พุตรหัสการตั้งค่าสำหรับการแชร์ระยะไกล/ด้วยตนเอง
summary: เอกสารอ้างอิง CLI สำหรับ `openclaw qr` (สร้าง QR สำหรับการจับคู่กับอุปกรณ์เคลื่อนที่ + รหัสตั้งค่า)
title: QR
x-i18n:
    generated_at: "2026-07-16T19:06:11Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: f9d60a58126eae7eec5979f28bb511a09fa52b68cdd73727fca0b2de74efa84a
    source_path: cli/qr.md
    workflow: 16
---

# `openclaw qr`

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

```bash
openclaw qr
openclaw qr --setup-code-only
openclaw qr --json
openclaw qr --remote
openclaw qr --limited
openclaw qr --url wss://gateway.example/ws
```

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

```bash
openclaw devices list
openclaw 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 ไม่พร้อมใช้งาน คำสั่งจะล้มเหลวทันที

<Note>
เส้นทางคำสั่งนี้ต้องใช้ Gateway ที่รองรับเมธอด RPC `secrets.resolve` Gateway รุ่นเก่าจะส่งคืนข้อผิดพลาดว่าไม่รู้จักเมธอด
</Note>

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

- [ข้อมูลอ้างอิง CLI](/th/cli)
- [อุปกรณ์](/th/cli/devices)
- [การจับคู่](/th/cli/pairing)
