CLI commands
Gateway
Gateway سرور WebSocket متعلق به OpenClaw است (کانالها، Nodeها، نشستها، hookها). زیرفرمانهای این صفحه زیر openclaw gateway … قرار دارند.
راهاندازی mDNS محلی + DNS-SD ناحیهگسترده.
اینکه OpenClaw چگونه Gatewayها را تبلیغ و پیدا میکند.
کلیدهای پیکربندی سطحبالای Gateway.
اجرای Gateway
یک فرایند Gateway محلی را اجرا کنید:
openclaw gateway
نام مستعار پیشزمینه:
openclaw gateway run
Startup behavior
- بهطور پیشفرض، Gateway از شروع به کار خودداری میکند مگر اینکه
gateway.mode=localدر~/.openclaw/openclaw.jsonتنظیم شده باشد. برای اجراهای موردی/توسعه از--allow-unconfiguredاستفاده کنید. - انتظار میرود
openclaw onboard --mode localوopenclaw setupمقدارgateway.mode=localرا بنویسند. اگر فایل وجود دارد اماgateway.modeوجود ندارد، آن را یک پیکربندی خراب یا بازنویسیشده در نظر بگیرید و بهجای اینکه حالت محلی را بهطور ضمنی فرض کنید، آن را ترمیم کنید. - اگر فایل وجود دارد و
gateway.modeوجود ندارد، Gateway این وضعیت را آسیب مشکوک به پیکربندی تلقی میکند و برای شما «حالت محلی را حدس» نمیزند. - bind کردن فراتر از loopback بدون احراز هویت مسدود میشود (محافظ ایمنی).
SIGUSR1وقتی مجاز باشد یک راهاندازی مجدد درونفرایندی را فعال میکند (commands.restartبهطور پیشفرض فعال است؛ برای مسدود کردن راهاندازی مجدد دستی،commands.restart: falseرا تنظیم کنید، در حالی که اعمال/بهروزرسانی ابزار/پیکربندی gateway همچنان مجاز میماند).- هندلرهای
SIGINT/SIGTERMفرایند gateway را متوقف میکنند، اما هیچ وضعیت سفارشی ترمینال را بازنمیگردانند. اگر CLI را با TUI یا ورودی raw-mode پوشش میدهید، پیش از خروج ترمینال را بازگردانید.
گزینهها
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcG9ydCA8cG9ydA
" type="number">
پورت WebSocket (مقدار پیشفرض از config/env میآید؛ معمولا 18789).
"--bind"--authOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tdG9rZW4gPHRva2Vu
" type="string">
بازنویسی token (همچنین OPENCLAW_GATEWAY_TOKEN را برای فرایند تنظیم میکند).
"--password"--tailscale--tailscale-reset-on-exitbooleanبازنشانی پیکربندی serve/funnel در Tailscale هنگام خاموشی.
--allow-unconfiguredbooleanاجازه شروع gateway بدون gateway.mode=local در پیکربندی. فقط برای بوتاسترپ موردی/توسعه از محافظ شروع عبور میکند؛ فایل پیکربندی را نمینویسد یا ترمیم نمیکند.
--devbooleanاگر وجود ندارد، یک پیکربندی توسعه + workspace ایجاد کنید (BOOTSTRAP.md را نادیده میگیرد).
--resetbooleanبازنشانی پیکربندی توسعه + credentials + نشستها + workspace (به --dev نیاز دارد).
--forcebooleanپیش از شروع، هر شنونده موجود روی پورت انتخابشده را متوقف کنید.
--verbosebooleanلاگهای پرجزئیات.
--cli-backend-logsbooleanفقط لاگهای backend مربوط به CLI را در کنسول نشان بده (و stdout/stderr را فعال کن).
"--ws-log--compactbooleanنام مستعار برای --ws-log compact.
--raw-streambooleanرویدادهای خام stream مدل را در jsonl لاگ کن.
راهاندازی مجدد Gateway
openclaw gateway restart
openclaw gateway restart --safe
openclaw gateway restart --force
openclaw gateway restart --safe از Gateway در حال اجرا میخواهد پیش از راهاندازی مجدد، کارهای فعال OpenClaw را پیشبررسی کند. اگر عملیات صفشده، تحویل پاسخ، اجراهای تعبیهشده، یا اجرای taskها فعال باشند، Gateway مسدودکنندهها را گزارش میکند، درخواستهای تکراری راهاندازی مجدد امن را ادغام میکند، و پس از تخلیه کار فعال راهاندازی مجدد میشود. restart ساده برای سازگاری، رفتار service-manager موجود را نگه میدارد. فقط زمانی از --force استفاده کنید که صریحا مسیر بازنویسی فوری را میخواهید.
پروفایلگیری شروع
OPENCLAW_GATEWAY_STARTUP_TRACE=1را تنظیم کنید تا زمانبندی فازها هنگام شروع Gateway لاگ شود، از جمله تاخیرeventLoopMaxدر هر فاز و زمانبندیهای جدول lookup Plugin برای installed-index، رجیستری manifest، برنامهریزی شروع، و کار owner-map.OPENCLAW_DIAGNOSTICS=timelineرا همراه باOPENCLAW_DIAGNOSTICS_TIMELINE_PATH=<path>تنظیم کنید تا یک timeline تشخیصی شروع با فرمت JSONL و بهصورت best-effort برای harnessهای QA خارجی نوشته شود. همچنین میتوانید این flag را باdiagnostics.flags: ["timeline"]در پیکربندی فعال کنید؛ مسیر همچنان از env تامین میشود. برای شامل کردن نمونههای event-loop،OPENCLAW_DIAGNOSTICS_EVENT_LOOP=1را اضافه کنید.- برای benchmark کردن شروع Gateway،
pnpm test:startup:gateway -- --runs 5 --warmup 1را اجرا کنید. این benchmark نخستین خروجی فرایند،/healthz،/readyz، زمانبندیهای trace شروع، تاخیر event-loop، و جزئیات زمانبندی جدول lookup Plugin را ثبت میکند.
پرسوجو از Gateway در حال اجرا
همه فرمانهای پرسوجو از WebSocket RPC استفاده میکنند.
Output modes
- پیشفرض: خوانا برای انسان (رنگی در TTY).
--json: JSON خوانا برای ماشین (بدون استایل/spinner).--no-color(یاNO_COLOR=1): ANSI را غیرفعال میکند و چیدمان انسانی را نگه میدارد.
Shared options
--url <url>: URL مربوط به Gateway WebSocket.--token <token>: token مربوط به Gateway.--password <password>: گذرواژه Gateway.--timeout <ms>: timeout/budget (بسته به فرمان متفاوت است).--expect-final: منتظر پاسخ «final» بمان (فراخوانیهای agent).
gateway health
openclaw gateway health --url ws://127.0.0.1:18789
endpoint مربوط به HTTP /healthz یک probe زندهبودن است: وقتی server بتواند به HTTP پاسخ بدهد، برمیگردد. endpoint مربوط به HTTP /readyz سختگیرانهتر است و تا زمانی که sidecarهای Plugin شروع، کانالها، یا hookهای پیکربندیشده هنوز در حال پایدار شدن هستند، قرمز میماند. پاسخهای آمادگی جزئی محلی یا احرازهویتشده شامل یک بلوک تشخیصی eventLoop با تاخیر event-loop، میزان استفاده event-loop، نسبت هسته CPU، و flag degraded هستند.
gateway usage-cost
خلاصههای usage-cost را از لاگهای نشست دریافت کنید.
openclaw gateway usage-cost
openclaw gateway usage-cost --days 7
openclaw gateway usage-cost --json
"--days gateway stability
recorder پایداری تشخیصی اخیر را از یک Gateway در حال اجرا دریافت کنید.
openclaw gateway stability
openclaw gateway stability --type payload.large
openclaw gateway stability --bundle latest
openclaw gateway stability --bundle latest --export
openclaw gateway stability --json
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tbGltaXQgPGxpbWl0
" type="number" default="25">
بیشینه تعداد رویدادهای اخیر که باید شامل شوند (حداکثر 1000).
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tdHlwZSA8dHlwZQ
" type="string">
فیلتر بر اساس نوع رویداد تشخیصی، مانند payload.large یا diagnostic.memory.pressure.
"--since-seq--bundle [path]stringبهجای فراخوانی Gateway در حال اجرا، یک bundle پایداری ذخیرهشده را بخوان. برای جدیدترین bundle زیر دایرکتوری state از --bundle latest (یا فقط --bundle) استفاده کنید، یا مسیر JSON یک bundle را مستقیما پاس بدهید.
--exportbooleanبهجای چاپ جزئیات پایداری، یک zip تشخیصی قابل اشتراکگذاری برای پشتیبانی بنویس.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tb3V0cHV0IDxwYXRo
" type="string">
مسیر خروجی برای --export.
Privacy and bundle behavior
- رکوردها metadata عملیاتی را نگه میدارند: نام رویدادها، شمارشها، اندازههای byte، خوانشهای memory، وضعیت queue/session، نام کانال/Plugin، و خلاصههای نشست redacted. آنها متن chat، بدنههای webhook، خروجیهای tool، بدنههای خام request یا response، tokenها، cookieها، مقادیر secret، hostnameها، یا شناسههای خام نشست را نگه نمیدارند. برای غیرفعال کردن کامل recorder،
diagnostics.enabled: falseرا تنظیم کنید. - هنگام خروجهای fatal از Gateway، timeoutهای خاموشی، و شکستهای شروعِ راهاندازی مجدد، وقتی recorder رویداد داشته باشد، OpenClaw همان snapshot تشخیصی را در
~/.openclaw/logs/stability/openclaw-stability-*.jsonمینویسد. جدیدترین bundle را باopenclaw gateway stability --bundle latestبررسی کنید؛--limit،--type، و--since-seqنیز روی خروجی bundle اعمال میشوند.
gateway diagnostics export
یک zip تشخیصی محلی بنویسید که برای پیوست شدن به گزارشهای bug طراحی شده است. برای مدل privacy و محتوای bundle، Diagnostics Export را ببینید.
openclaw gateway diagnostics export
openclaw gateway diagnostics export --output openclaw-diagnostics.zip
openclaw gateway diagnostics export --json
"--log-lines"--log-bytes"--url"--token"--password"--timeout--no-stability-bundlebooleanlookup مربوط به bundle پایداری ذخیرهشده را رد کن.
--jsonbooleanمسیر نوشتهشده، اندازه، و manifest را بهصورت JSON چاپ کن.
این export شامل یک manifest، خلاصه Markdown، شکل پیکربندی، جزئیات پیکربندی sanitized، خلاصههای لاگ sanitized، snapshotهای وضعیت/سلامت sanitized مربوط به Gateway، و در صورت وجود، جدیدترین bundle پایداری است.
این خروجی برای اشتراکگذاری در نظر گرفته شده است. جزئیات عملیاتی مفید برای debugging را نگه میدارد، مانند فیلدهای امن لاگ OpenClaw، نامهای subsystem، status codeها، durationها، modeهای پیکربندیشده، portها، شناسههای Plugin، شناسههای provider، تنظیمات feature غیرمحرمانه، و پیامهای لاگ عملیاتی redacted. متن chat، بدنههای webhook، خروجیهای tool، credentials، cookieها، شناسههای account/message، متن prompt/instruction، hostnameها، و مقادیر secret را حذف یا redacted میکند. وقتی یک پیام به سبک LogTape شبیه متن payload کاربر/chat/tool باشد، export فقط این را نگه میدارد که یک پیام حذف شده است، همراه با شمارش byte آن.
gateway status
gateway status سرویس Gateway (launchd/systemd/schtasks) را همراه با یک probe اختیاری از قابلیت connectivity/auth نشان میدهد.
openclaw gateway status
openclaw gateway status --json
openclaw gateway status --require-rpc
"--url"--token"--password"--timeout--no-probebooleanکاوش اتصالپذیری را رد کنید (نمای فقط سرویس).
--deepbooleanسرویسهای سطح سیستم را هم اسکن کنید.
--require-rpcbooleanکاوش اتصالپذیری پیشفرض را به یک کاوش خواندن ارتقا دهید و وقتی آن کاوش خواندن ناموفق بود با کد غیرصفر خارج شوید. نمیتواند با --no-probe ترکیب شود.
معناشناسی وضعیت
gateway statusحتی وقتی پیکربندی CLI محلی وجود ندارد یا نامعتبر است، برای عیبیابی در دسترس میماند.gateway statusپیشفرض وضعیت سرویس، اتصال WebSocket، و قابلیت احراز هویت قابل مشاهده در زمان دستدهی را اثبات میکند. عملیات خواندن/نوشتن/مدیریت را اثبات نمیکند.- کاوشهای عیبیابی برای احراز هویت دستگاه در نخستین استفاده تغییردهنده نیستند: وقتی توکن دستگاه کششده موجود باشد همان را دوباره استفاده میکنند، اما فقط برای بررسی وضعیت، هویت دستگاه CLI جدید یا رکورد جفتسازی دستگاه فقطخواندنی ایجاد نمیکنند.
gateway statusدر صورت امکان SecretRefهای احراز هویت پیکربندیشده را برای احراز هویت کاوش حل میکند.- اگر یک SecretRef احراز هویت لازم در این مسیر دستور حل نشود،
gateway status --jsonوقتی اتصالپذیری/احراز هویت کاوش ناموفق باشدrpc.authWarningرا گزارش میکند؛--token/--passwordرا صریحاً پاس دهید یا ابتدا منبع راز را حل کنید. - اگر کاوش موفق شود، هشدارهای auth-ref حلنشده برای جلوگیری از مثبت کاذب سرکوب میشوند.
- وقتی در اسکریپتها و اتوماسیون یک سرویس در حال گوشدادن کافی نیست و لازم است فراخوانیهای RPC با دامنه خواندن نیز سالم باشند، از
--require-rpcاستفاده کنید. --deepیک اسکن بهترینتلاش برای نصبهای اضافی launchd/systemd/schtasks اضافه میکند. وقتی چند سرویس شبیه Gateway شناسایی شوند، خروجی انسانی نکتههای پاکسازی را چاپ میکند و هشدار میدهد که بیشتر راهاندازیها باید روی هر ماشین یک Gateway اجرا کنند.--deepهمچنین یک واگذاری اخیر راهاندازی مجدد سرپرست Gateway را وقتی فرایند سرویس برای راهاندازی مجدد توسط سرپرست خارجی بهصورت تمیز خارج شده باشد گزارش میکند.- خروجی انسانی مسیر لاگ فایل حلشده بههمراه نمای لحظهای مسیرها/اعتبار پیکربندی CLI در برابر سرویس را شامل میشود تا به عیبیابی drift پروفایل یا state-dir کمک کند.
بررسیهای drift احراز هویت systemd لینوکس
- در نصبهای systemd لینوکس، بررسیهای drift احراز هویت سرویس هر دو مقدار
Environment=وEnvironmentFile=را از unit میخوانند (شامل%h، مسیرهای نقلقولشده، چند فایل، و فایلهای اختیاری-). - بررسیهای drift، SecretRefهای
gateway.auth.tokenرا با env زمان اجرای ادغامشده حل میکنند (ابتدا env دستور سرویس، سپس env فرایند بهعنوان fallback). - اگر احراز هویت توکنی عملاً فعال نباشد (
gateway.auth.modeصریح با مقدارpassword/none/trusted-proxy، یا mode تنظیم نشده باشد و گذرواژه بتواند برنده شود و هیچ نامزد توکنی نتواند برنده شود)، بررسیهای token-drift حل توکن پیکربندی را رد میکنند.
gateway probe
gateway probe دستور «عیبیابی همهچیز» است. همیشه اینها را کاوش میکند:
- Gateway ریموت پیکربندیشده شما (اگر تنظیم شده باشد)، و
- localhost (loopback) حتی اگر ریموت پیکربندی شده باشد.
اگر --url را پاس دهید، آن هدف صریح قبل از هر دو اضافه میشود. خروجی انسانی هدفها را اینگونه برچسبگذاری میکند:
URL (explicit)Remote (configured)یاRemote (configured, inactive)Local loopback
openclaw gateway probe
openclaw gateway probe --json
تفسیر
Reachable: yesیعنی دستکم یک هدف اتصال WebSocket را پذیرفته است.Capability: read-only|write-capable|admin-capable|pairing-pending|connect-onlyگزارش میکند کاوش درباره احراز هویت چه چیزی را توانسته اثبات کند. این از دسترسپذیری جدا است.Read probe: okیعنی فراخوانیهای RPC جزئیات با دامنه خواندن (health/status/system-presence/config.get) نیز موفق شدهاند.Read probe: limited - missing scope: operator.readیعنی اتصال موفق بوده اما RPC با دامنه خواندن محدود است. این بهعنوان دسترسپذیری تنزلیافته گزارش میشود، نه شکست کامل.Read probe: failedبعد ازConnect: okیعنی Gateway اتصال WebSocket را پذیرفته، اما عیبیابیهای خواندن بعدی timeout شده یا ناموفق بودهاند. این هم دسترسپذیری تنزلیافته است، نه یک Gateway غیرقابل دسترسی.- مانند
gateway status، کاوش از احراز هویت دستگاه کششده موجود دوباره استفاده میکند اما هویت دستگاه یا وضعیت جفتسازی نخستین استفاده را ایجاد نمیکند. - کد خروج فقط وقتی غیرصفر است که هیچ هدف کاوششدهای قابل دسترسی نباشد.
خروجی JSON
سطح بالا:
ok: دستکم یک هدف قابل دسترسی است.degraded: دستکم یک هدف اتصال را پذیرفته اما عیبیابیهای RPC با جزئیات کامل را تکمیل نکرده است.capability: بهترین قابلیت دیدهشده در میان هدفهای قابل دسترسی (read_only،write_capable،admin_capable،pairing_pending،connected_no_operator_scope، یاunknown).primaryTargetId: بهترین هدف برای در نظر گرفتن بهعنوان برنده فعال، به این ترتیب: URL صریح، تونل SSH، ریموت پیکربندیشده، سپس local loopback.warnings[]: رکوردهای هشدار بهترینتلاش باcode،message، وtargetIdsاختیاری.network: راهنماییهای URL برای local loopback/tailnet که از پیکربندی فعلی و شبکه میزبان به دست آمدهاند.discovery.timeoutMsوdiscovery.count: بودجه/تعداد نتیجه واقعی کشف که برای این گذر کاوش استفاده شده است.
برای هر هدف (targets[].connect):
ok: دسترسپذیری پس از اتصال + طبقهبندی تنزلیافته.rpcOk: موفقیت کامل RPC جزئیات.scopeLimited: RPC جزئیات بهدلیل نبود دامنه operator ناموفق شده است.
برای هر هدف (targets[].auth):
role: نقش احراز هویت گزارششده درhello-okوقتی در دسترس باشد.scopes: دامنههای اعطاشده گزارششده درhello-okوقتی در دسترس باشد.capability: طبقهبندی قابلیت احراز هویت نمایشدادهشده برای آن هدف.
کدهای هشدار رایج
ssh_tunnel_failed: راهاندازی تونل SSH ناموفق بود؛ دستور به کاوشهای مستقیم fallback کرد.multiple_gateways: بیش از یک هدف قابل دسترسی بود؛ این غیرمعمول است مگر اینکه عمداً پروفایلهای جداافتاده، مانند یک ربات نجات، اجرا کنید.auth_secretref_unresolved: یک SecretRef احراز هویت پیکربندیشده برای یک هدف ناموفق قابل حل نبود.probe_scope_limited: اتصال WebSocket موفق بود، اما کاوش خواندن بهدلیل نبودoperator.readمحدود شد.
ریموت از طریق SSH (همارزی برنامه Mac)
حالت «ریموت از طریق SSH» در برنامه macOS از یک port-forward محلی استفاده میکند تا Gateway ریموت (که ممکن است فقط به loopback متصل شده باشد) در ws://127.0.0.1:<port> قابل دسترسی شود.
معادل CLI:
openclaw gateway probe --ssh user@gateway-host
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tc3NoIDx0YXJnZXQ
" type="string">
user@host یا user@host:port (پورت بهطور پیشفرض 22 است).
--ssh-autobooleanنخستین میزبان Gateway کشفشده را از نقطه پایانی کشف حلشده (local. بهعلاوه دامنه گسترده پیکربندیشده، اگر وجود داشته باشد) بهعنوان هدف SSH انتخاب کنید. راهنماییهای فقط TXT نادیده گرفته میشوند.
پیکربندی (اختیاری، بهعنوان پیشفرضها استفاده میشود):
gateway.remote.sshTargetgateway.remote.sshIdentity
gateway call <method>
راهنمای سطح پایین RPC.
openclaw gateway call status
openclaw gateway call logs.tail --params '{"sinceMs": 60000}'
"--params"--url"--token"--password"--timeout--expect-finalbooleanعمدتاً برای RPCهای سبک agent که پیش از payload نهایی، رویدادهای میانی را stream میکنند.
--jsonbooleanخروجی JSON قابل خواندن برای ماشین.
مدیریت سرویس Gateway
openclaw gateway install
openclaw gateway start
openclaw gateway stop
openclaw gateway restart
openclaw gateway uninstall
نصب با wrapper
وقتی سرویس مدیریتشده باید از طریق اجرایی دیگری شروع شود، مثلاً یک shim مدیر رازها یا یک راهنمای run-as، از --wrapper استفاده کنید. wrapper آرگومانهای عادی Gateway را دریافت میکند و مسئول است که در نهایت openclaw یا Node را با آن آرگومانها exec کند.
cat > ~/.local/bin/openclaw-doppler <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
exec doppler run --project my-project --config production -- openclaw "$@"
EOF
chmod +x ~/.local/bin/openclaw-doppler
openclaw gateway install --wrapper ~/.local/bin/openclaw-doppler --force
openclaw gateway restart
همچنین میتوانید wrapper را از طریق محیط تنظیم کنید. gateway install اعتبارسنجی میکند که مسیر یک فایل اجرایی باشد، wrapper را در ProgramArguments سرویس مینویسد، و OPENCLAW_WRAPPER را در محیط سرویس برای نصب مجدد اجباری، بهروزرسانیها، و تعمیرهای doctor بعدی پایدار میکند.
OPENCLAW_WRAPPER="$HOME/.local/bin/openclaw-doppler" openclaw gateway install --force
openclaw doctor
برای حذف یک wrapper پایدارشده، هنگام نصب مجدد OPENCLAW_WRAPPER را پاک کنید:
OPENCLAW_WRAPPER= openclaw gateway install --force
openclaw gateway restart
گزینههای دستور
gateway status:--url,--token,--password,--timeout,--no-probe,--require-rpc,--deep,--jsongateway install:--port,--runtime <node|bun>,--token,--wrapper <path>,--force,--jsongateway restart:--safe,--force,--wait <duration>,--jsongateway uninstall|start|stop:--json
رفتار چرخه عمر
- برای راهاندازی مجدد یک سرویس مدیریتشده از
gateway restartاستفاده کنید.gateway stopوgateway startرا بهعنوان جایگزین راهاندازی مجدد زنجیره نکنید؛ در macOS،gateway stopعمداً LaunchAgent را پیش از متوقف کردنش غیرفعال میکند. gateway restart --safeاز Gateway در حال اجرا میخواهد کارهای فعال OpenClaw را پیشپرواز کند و راهاندازی مجدد را تا تخلیه تحویل پاسخ، اجراهای embedded، و اجراهای task به تعویق بیندازد.--safeنمیتواند با--forceیا--waitترکیب شود.gateway restart --wait 30sبودجه drain راهاندازی مجدد پیکربندیشده را برای آن راهاندازی مجدد override میکند. عددهای بدون واحد میلیثانیه هستند؛ واحدهایی مانندs،m، وhپذیرفته میشوند.--wait 0نامحدود منتظر میماند.gateway restart --forcedrain کار فعال را رد میکند و فوراً راهاندازی مجدد انجام میدهد. وقتی یک operator از قبل blockerهای task فهرستشده را بررسی کرده و اکنون Gateway را دوباره میخواهد، از آن استفاده کنید.- دستورهای چرخه عمر برای اسکریپتنویسی
--jsonرا میپذیرند.
احراز هویت و SecretRefها در زمان نصب
- وقتی احراز هویت توکنی به توکن نیاز دارد و
gateway.auth.tokenبا SecretRef مدیریت میشود،gateway installبررسی میکند که SecretRef قابل رفع باشد، اما توکن رفعشده را در فرادادهٔ محیط سرویس ذخیره نمیکند. - اگر احراز هویت توکنی به توکن نیاز داشته باشد و SecretRef توکن پیکربندیشده رفعنشده باشد، نصب بهصورت بسته شکست میخورد، بهجای اینکه متن سادهٔ جایگزین را ذخیره کند.
- برای احراز هویت گذرواژه در
gateway run، بهجای--passwordدرونخطی،OPENCLAW_GATEWAY_PASSWORD،--password-fileیاgateway.auth.passwordمبتنی بر SecretRef را ترجیح دهید. - در حالت احراز هویت استنباطشده،
OPENCLAW_GATEWAY_PASSWORDکه فقط در پوسته وجود دارد، الزامات توکن نصب را آسانتر نمیکند؛ هنگام نصب یک سرویس مدیریتشده، از پیکربندی پایدار (gateway.auth.passwordیاenvپیکربندی) استفاده کنید. - اگر هر دو
gateway.auth.tokenوgateway.auth.passwordپیکربندی شده باشند وgateway.auth.modeتنظیم نشده باشد، نصب تا زمانی که حالت بهصراحت تنظیم شود مسدود میشود.
کشف Gatewayها (Bonjour)
gateway discover بهدنبال نشانکهای Gateway (_openclaw-gw._tcp) پویش میکند.
- Multicast DNS-SD:
local. - Unicast DNS-SD (Bonjour گسترده): یک دامنه انتخاب کنید (نمونه:
openclaw.internal.) و split DNS بههمراه یک سرور DNS راهاندازی کنید؛ Bonjour را ببینید.
فقط Gatewayهایی که کشف Bonjour در آنها فعال است (پیشفرض) نشانک را تبلیغ میکنند.
رکوردهای کشف گسترده شامل این مواردند (TXT):
role(راهنمای نقش Gateway)transport(راهنمای انتقال، برای مثالgateway)gatewayPort(درگاه WebSocket، معمولاً18789)sshPort(اختیاری؛ کلاینتها وقتی موجود نباشد، اهداف SSH را بهصورت پیشفرض22در نظر میگیرند)tailnetDns(نام میزبان MagicDNS، وقتی در دسترس باشد)gatewayTls/gatewayTlsSha256(TLS فعال + اثرانگشت گواهی)cliPath(راهنمای نصب از راه دور که در ناحیهٔ گسترده نوشته میشود)
gateway discover
openclaw gateway discover
"--timeout--jsonbooleanخروجی قابلخواندن برای ماشین (همچنین استایلدهی/اسپینر را غیرفعال میکند).
نمونهها:
openclaw gateway discover --timeout 4000
openclaw gateway discover --json | jq '.beacons[].wsUrl'