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را ترجیح میدهد؛ اگر آن URL تنظیم نشده باشد، ازgateway.tailscale.mode=serve|funnelبهعنوان جایگزین استفاده میکند.publicUrlمربوط به Plugindevice-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 در دسترس نباشد، فرمان بهسرعت ناموفق میشود.