CLI commands
QR
openclaw qr
از پیکربندی فعلی Gateway خود، یک کد QR برای جفتسازی موبایل و کد راهاندازی ایجاد کنید.
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استفاده میکند.publicUrlمربوط به Plugin device-pairرا نادیده میگیرد.--url <url>: نشانی اینترنتی Gateway مورداستفاده در بار داده را بازنویسی میکند--public-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 با یکدیگر ناسازگارند.
محتوای کد راهاندازی
کد راهاندازی بهجای توکن/گذرواژه مشترک Gateway، یک bootstrapToken مبهم و کوتاهعمر را حمل میکند. برای یک نقطه پایانی wss:// (یا حلقه بازگشتی روی همان میزبان)، جریان پیشفرض راهاندازی اولیه موارد زیر را صادر میکند:
- یک توکن اصلی
nodeباscopes: [] - یک توکن کامل تحویل
operatorویژه موبایل بومی باoperator.admin،operator.approvals،operator.read،operator.talk.secretsوoperator.write
برای حفظ همان توکن Node و همزمان حذف operator.admin از تحویل اپراتور، از --limited استفاده کنید. محدوده تغییر جفتسازی هرگز از طریق کد راهاندازی تحویل داده نمیشود.
راهاندازی ws:// در LAN با متن ساده همچنان در دسترس است، اما OpenClaw بهطور خودکار از نمایه محدود استفاده میکند، زیرا ناظر شبکه میتواند توکن حامل راهاندازی اولیه را ضبط کند و در استفاده از آن پیشدستی کند. wss:// یا Tailscale Serve را پیکربندی کنید، سپس برای دریافت دسترسی کامل کد جدیدی ایجاد کنید.
تفکیک نشانی اینترنتی Gateway
جفتسازی موبایل برای نشانیهای اینترنتی Gateway از نوع Tailscale/عمومی ws:// بهصورت بسته و ایمن شکست میخورد: برای آنها از Tailscale Serve/Funnel یا یک نشانی اینترنتی Gateway از نوع wss:// استفاده کنید. نشانیهای خصوصی LAN و میزبانهای Bonjour .local همچنان از طریق ws:// با متن ساده پشتیبانی میشوند و همانطور که در بالا توضیح داده شد، دسترسی اپراتور محدود خواهد بود.
هنگامی که نشانی اینترنتی انتخابشده 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 محلی بهشکل زیر تفکیک میشوند:
| شرط | نتیجه تفکیک |
|---|---|
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 در دسترس نباشد، فرمان بلافاصله شکست میخورد.