CLI commands

QR

openclaw qr

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

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 را ترجیح می‌دهد؛ اگر آن 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 در دسترس نباشد، فرمان به‌سرعت ناموفق می‌شود.

مرتبط

Was this useful?
On this page

On this page