Community程式設計與開發github.com

Node Connect(節點連線除錯)

診斷 OpenClaw Control UI 瀏覽器與原生 Android、iOS 或 macOS 節點連線失敗,涵蓋路由、認證、配對、QR/設定碼及重新連線狀態。

Node Connect(節點連線除錯) 是什麼?

這是一個針對 OpenClaw 閘道器(Gateway)連線問題的結構化除錯技能,專門處理 Control UI 瀏覽器以及原生行動裝置(Android、iOS)或 macOS 節點的連線失敗情境。它會引導使用者鎖定目標環境、分類客戶端類型(瀏覽器 vs 原生節點),並透過觀察失敗嘗試、驗證路由、以及依照不同的客戶端通道(Control UI 瀏覽器通道或原生行動/節點通道)逐步排除問題。此技能支援所有 OpenClaw 部署模式(本機、LAN、Tailnet、公開反向代理),並強調不混合不同拓撲。關鍵功能包括驗證認證與配對狀態、使用 `openclaw qr` 與 `openclaw devices approve` 等命令安全地處理設定碼,以及最終根據完整的連線證明鏈(路由、認證、配對、重新連線)宣告成功。它適用於 Claude Code、Cursor 或 Codex 等 AI 代理工具,遵循嚴格的 SKILL.md 文件規範,並內建安全防護機制(如不透過代理輸出傳遞密碼等效的設定碼)。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/skills/node-connect

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Node Connect(節點連線除錯) 是做什麼的?

目標:針對一個特定的客戶端與一個特定的閘道器(Gateway)修正連線問題,然後證明該客戶端可以建立全新的連線。

1. 鎖定目標

在進行任何變更之前,記錄目標環境/設定檔、OpenClaw 二進位檔、設定/狀態根目錄、閘道器 URL/連接埠及服務。

  • 針對每個 config、log、service、device 及 node 命令,使用指定的部署包裝器/設定檔。
  • 絕不漂移到 bare openclaw、測試環境或名稱相似的部署。
  • 如果全域執行檔已過時,請透過其擁有者呼叫目標。
  • 驗證 status、config、logs 及 process identity 描述的是同一個閘道器。

在變更配對或認證之前,先識別目標閘道器。

2. 分類客戶端

在選擇命令之前,先根據請求和閘道器日誌進行分類:

  • Control UI 瀏覽器: 使用者提到 browser、dashboard、Control UI 或 webchat;日誌顯示 client=openclaw-control-ui 或 mode=webchat。
  • 原生行動裝置/節點: 官方應用程式顯示 Connect、Scan QR 或 setup code;日誌/請求中繼資料顯示原生客戶端或 role=node。

手機可以是任一種客戶端。請勿對手機瀏覽器使用 openclaw qr 或 openclaw nodes status;那些命令屬於原生行動裝置/節點配對。

3. 觀察失敗嘗試

透過鎖定的目標執行以下命令:

openclaw gateway status --deep
openclaw logs --follow --json
openclaw devices list
openclaw config get gateway.mode
openclaw config get gateway.bind
openclaw config get gateway.remote.url
openclaw config get gateway.auth.mode
openclaw config get gateway.auth.allowTailscale
openclaw config get gateway.tailscale.mode

讓客戶端在日誌即時輸出時重試一次。關聯其 client ID、mode、platform、address、auth result、device ID、user 及 close code。忽略其他已配對的裝置。

解讀第一個失敗的轉換:

  • 沒有符合的閘道器嘗試:路由、DNS、TLS、來源或代理問題。
  • token_missing、password_missing、不符或 Tailscale 身份識別失敗:認證在配對前失敗,因此預期 pending 清單為空。
  • pairing required:路由和認證成功;請核准確切的 pending 請求。
  • authenticated user connected / webchat connected:比對確切的客戶端;如果隨後出現 1006,請保留認證/配對並檢查生命週期、傳輸、代理或重新連線。
  • 沒有伴隨任何應用層級連線日誌的 1006 並不證明認證/配對成功;請檢查較早的交握轉換。

4. 證明路由

選擇一種拓撲:同一台機器、LAN、Tailnet 或公有反向代理。請勿混合使用。

  • 瀏覽器 Control UI 需要 HTTPS 或 localhost 以獲得瀏覽器裝置身份。遠端純文字 HTTP Tailnet/LAN URL 不是有效的替代方案。
  • gateway.tailscale.mode=off 表示 OpenClaw 並未管理 Serve/Funnel。這並不證明 Tailscale 或外部管理的 Serve 路由不存在。
  • 當涉及 Tailscale 時,請檢查即時狀態,而不是從 OpenClaw 設定推斷:
tailscale status --json
tailscale serve status --json

將客戶端的 URL 與到達鎖定閘道器的監聽器/代理路由進行比對。

5A. Control UI 瀏覽器通道

在尋找配對請求之前,先恢復瀏覽器認證:

  • 對於 token/password 認證,請在 Control UI 設定中輸入憑證。切勿將永久機密放入聊天、日誌或 URL 中。
  • 優先使用 Gateway 主機上的 openclaw dashboard 進行一次性簽署的交握。僅在操作員可以擷取該主機的剪貼簿時使用 --no-open,並將主機瀏覽器/剪貼簿保持在代理工具範圍之外。切勿擷取 dashboard --json:它可能暴露交握資訊和共享憑證。切勿中繼、改寫或將回送交握 URL 傳送到遠端手機。
  • 對於 Tailscale Serve,請驗證即時路由和轉發的身份。僅在預期的信任邊界內啟用 gateway.auth.allowTailscale。經過驗證的 Tailscale Control UI 認證加上瀏覽器裝置身份可以跳過配對。

認證成功後:

  • 重試;切勿從預先認證的嘗試推斷配對。Token/password 認證可能顯示 pairing required;經過驗證的 Tailscale 身份可以跳過它。
  • 如果日誌顯示 pairing required,重新列出裝置並核准確切的請求 ID。
  • 成功的經過驗證的 Tailscale 連線可能正確地不會產生任何 pending 或 paired-device 列。
  • 在重複出現 1006 之後,保留認證/配對並檢查重新連線的證據。

5B. 原生行動裝置/節點通道

透過鎖定的目標檢查原生路由,而不暴露設定憑證:

openclaw qr --json | jq '{gatewayUrl, gatewayUrls, auth, access, accessDowngraded, urlSource}'

對於控制遠端閘道器的 CLI,請在 --json 之前加入 --remote;它會選擇 gateway.remote.url 和遠端憑證。如果無法使用遮罩過濾器,請勿在代理可見的輸出中執行未經處理的 QR JSON。

驗證 gatewayUrl 和 urlSource。設定碼等同於密碼:請操作員從 Control UI → Devices → Pair device 複製,或在代理工具範圍外的終端機中執行 openclaw qr --setup-code-only,然後直接貼到官方應用程式中。切勿透過代理/聊天/工具輸出中繼。在 URL/認證修復或過期後產生新的代碼。

如果應用程式回報 pairing required:

openclaw devices list
openclaw devices approve --latest   # 僅預覽;不核准即退出
openclaw devices approve <requestId>
openclaw nodes status

--latest 僅預覽當前請求;切勿將其視為核准。在執行確切 ID 命令之前立即重新列出,因為重試可能會取代該請求。切勿根據位置、時間或相似性進行核准。

6. 關聯與完成

在核准之前,比對可用的請求、裝置/公鑰、客戶端、模式/角色、平台、位址、使用者和重試時間的事實。

僅在最終變更後進行的新嘗試證明所有適用的檢查通過時,才宣告成功:

  • 確切的客戶端到達鎖定的閘道器;
  • 預期的認證成功;
  • 瀏覽器完成初始請求,或原生節點出現在 openclaw nodes status 中;
  • 核准使用了確切的請求 ID;以及
  • 後續沒有立即發生認證、配對或重新連線失敗。

QR/設定碼、啟動的瀏覽器、空的 pending 清單、核准、已配對裝置計數或 Tailscale ping 僅證明一個轉換。

報告診斷結果、選擇的路由/認證通道、確切客戶端的證據,以及任何剩餘的失敗轉換。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

相關技能