---
read_when:
    - می‌خواهید یک اپلیکیشن Node موبایل را به‌سرعت با یک Gateway جفت کنید
    - برای اشتراک‌گذاری راه‌دور/دستی به خروجی کد راه‌اندازی نیاز دارید
summary: مرجع CLI برای `openclaw qr` (تولید کد QR جفت‌سازی موبایل + کد راه‌اندازی)
title: QR
x-i18n:
    generated_at: "2026-07-27T15:04:17Z"
    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`

از پیکربندی فعلی Gateway خود، یک کد QR جفت‌سازی موبایل و کد راه‌اندازی ایجاد کنید.

```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` را ترجیح می‌دهد؛ اگر آن URL تنظیم نشده باشد، از `gateway.tailscale.mode=serve|funnel` به‌عنوان جایگزین استفاده می‌کند. `publicUrl` مربوط به Plugin `device-pair` را نادیده می‌گیرد.
- `--url <url>`: بازنویسی URL درگاه استفاده‌شده در محموله
- `--public-url <url>`: بازنویسی URL عمومی استفاده‌شده در محموله
- `--token <token>`: بازنویسی توکن درگاهی که جریان بوت‌استرپ با آن احراز هویت می‌کند
- `--password <password>`: بازنویسی گذرواژهٔ درگاهی که جریان بوت‌استرپ با آن احراز هویت می‌کند
- `--limited`: حذف دسترسی مدیریتی Gateway از توکن اپراتور تحویل‌داده‌شده
- `--setup-code-only`: فقط کد راه‌اندازی را چاپ می‌کند
- `--no-ascii`: از رندر QR به‌صورت ASCII صرف‌نظر می‌کند
- `--json`: خروجی JSON تولید می‌کند (`setupCode`، `gatewayUrl`، `gatewayUrls` اختیاری، `auth`، `access`، `accessDowngraded` اختیاری، `urlSource`)

`--token` و `--password` با یکدیگر ناسازگارند.

## محتوای کد راه‌اندازی

کد راه‌اندازی حامل یک `bootstrapToken` مبهم و کوتاه‌عمر است، نه توکن/گذرواژهٔ مشترک درگاه. برای یک نقطهٔ پایانی `wss://` (یا لوپ‌بک روی همان میزبان)، جریان پیش‌فرض بوت‌استرپ موارد زیر را صادر می‌کند:

- یک توکن اصلی `node` با `scopes: []`
- یک توکن تحویل کامل `operator` برای موبایل بومی با `operator.admin`، `operator.approvals`، `operator.read`، `operator.talk.secrets` و `operator.write`

برای حفظ همان توکن گره و درعین‌حال حذف `operator.admin` از تحویل اپراتور، از `--limited` استفاده کنید. دامنهٔ تغییر جفت‌سازی هرگز از طریق کد راه‌اندازی تحویل داده نمی‌شود.

راه‌اندازی `ws://` با متن ساده در LAN همچنان در دسترس است، اما OpenClaw به‌طور خودکار از نمایهٔ محدود استفاده می‌کند، زیرا یک ناظر شبکه می‌تواند توکن حامل بوت‌استرپ را ضبط کند و برای استفاده از آن پیش‌دستی کند. `wss://` یا Tailscale Serve را پیکربندی کنید، سپس برای دریافت دسترسی کامل یک کد جدید ایجاد کنید.

## تفکیک URL درگاه

جفت‌سازی موبایل برای URLهای درگاه `ws://` عمومی/Tailscale به‌صورت بسته و ایمن شکست می‌خورد: برای آن‌ها از Tailscale Serve/Funnel یا یک URL درگاه `wss://` استفاده کنید. نشانی‌های LAN خصوصی و میزبان‌های Bonjour با `.local` همچنان از طریق `ws://` ساده پشتیبانی می‌شوند و همان‌طور که در بالا توضیح داده شد، دسترسی اپراتور محدود است.

هنگامی که URL انتخاب‌شدهٔ Gateway از `gateway.bind=lan` گرفته می‌شود، OpenClaw مسیرهای پایدار `tailscale serve status --json` را نیز بررسی می‌کند. هر ریشهٔ HTTPS Serve که پورت لوپ‌بک Gateway فعال را پروکسی کند، به‌عنوان مسیر جایگزین گنجانده می‌شود. فرمان QR این مسیر جایگزین را فقط برای `lan` اضافه می‌کند؛ `custom` و `tailnet` مسیرهای صراحتاً اعلام‌شدهٔ خود را حفظ می‌کنند. کلاینت‌های فعلی iOS مسیرهای اعلام‌شده را به‌ترتیب بررسی می‌کنند و نخستین مسیر قابل‌دسترسی را ذخیره می‌کنند؛ فیلد قدیمی `url` برای کلاینت‌های قدیمی‌تر بدون تغییر باقی می‌ماند.

با `--remote`، یکی از `gateway.remote.url` یا `gateway.tailscale.mode=serve|funnel` الزامی است.

## تفکیک احراز هویت (بدون `--remote`)

هنگامی که هیچ بازنویسی احراز هویت CLI ارسال نشده باشد، SecretRefهای احراز هویت درگاه محلی به‌شکل زیر تفکیک می‌شوند:

| شرط                                                                                                                    | به این مقدار تفکیک می‌شود                                  |
| ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
| `gateway.auth.mode="token"`، یا حالت استنباط‌شده بدون منبع گذرواژهٔ برنده                                                | `gateway.auth.token`                      |
| `gateway.auth.mode="password"`، یا حالت استنباط‌شده بدون توکن برنده از احراز هویت/محیط                                         | `gateway.auth.password`                   |
| هر دو `gateway.auth.token` و `gateway.auth.password` پیکربندی شده‌اند (از جمله SecretRefها) و `gateway.auth.mode` تنظیم نشده است | ناموفق می‌شود؛ `gateway.auth.mode` را صراحتاً تنظیم کنید |

## تفکیک احراز هویت (`--remote`)

اگر اعتبارنامه‌های راه‌دورِ عملاً فعال به‌صورت SecretRef پیکربندی شده باشند و نه `--token` و نه `--password` ارسال نشده باشد، فرمان آن‌ها را از اسنپ‌شات Gateway فعال تفکیک می‌کند. اگر Gateway در دسترس نباشد، فرمان به‌سرعت ناموفق می‌شود.

<Note>
این مسیر فرمان به Gatewayای نیاز دارد که از متد RPC با نام `secrets.resolve` پشتیبانی کند. Gatewayهای قدیمی‌تر خطای ناشناخته‌بودن متد را برمی‌گردانند.
</Note>

## مرتبط

- [مرجع CLI](/fa/cli)
- [دستگاه‌ها](/fa/cli/devices)
- [جفت‌سازی](/fa/cli/pairing)
