誰會遇到:已用 Docker 或本機安裝 OpenClaw,但 openclaw CLI 在首次配對、onboarding 或容器內執行時反覆出現 WebSocket 1006/1008,或日誌顯示 token mismatch,改設定檔也不生效。本文結論:把環境變數覆寫、CLI 實際連線的 ws URL、配對狀態機三件事對齊到同一張對照表,再銜接 openclaw doctor 與 Docker 網路篇。結構:六類誤判、症狀矩陣、指紋指令、六步 Runbook、三 KPI、選型收束。
gateway.auth.token 仍是 mismatch」?六類常見誤判OpenClaw Gateway 在 2025–2026 社群排障裡,配對與驗證常與「網路斷線」混為一談:日誌同時出現關閉碼與模型錯誤,容易誤判成上游 LLM 掛點。以下六條建議與《裝後 doctor 與 Gateway 健康檢查》一併列在 Wiki 首頁。
OPENCLAW_GATEWAY_TOKEN 靜默覆寫設定檔:容器或 launchd 單元注入的環境變數優先權更高,檔案裡的 gateway.auth.token 已改但行程仍讀舊值,表現成「改完重啟仍 mismatch」。127.0.0.1:Compose 未把 CLI 的 Gateway URL 指到 openclaw-gateway 服務名時,握手階段即失敗,日誌可能只給 1006/1008 而看不到應用層錯誤,與《Docker 網路分診清單》症狀重疊。.openclaw 或等價設定,CLI 實際載入路徑與編輯器開啟的不是同一個檔案。與《官方安裝指令稿與 npm 全域路徑》的關係:安裝篇保證「二進位與 Node 版本在 PATH」;本篇保證「CLI 與 Gateway 對同一 token、同一 ws 端點說話」。兩者應在同一「首次上線 Runbook」裡依序引用。
下列矩陣用於第一次分診:若某列命中,請先把對應檢查做到「可複現的指令輸出」再進下一層;避免同時改 token、改 Compose、改反向代理三處。
| 你看到的表面症狀 | 優先懷疑堆疊 | 立刻做的檢查 | 下一步文件 |
|---|---|---|---|
日誌:token mismatch 且改檔無效 | 環境變數覆寫/多設定檔 | 列印行程環境裡的 OPENCLAW_GATEWAY_*;對照實際載入路徑 | 本文 §3 指紋指令稿;裝後 doctor 篇 |
| 僅容器內失敗,宿主機成功 | 迴環位址/服務名稱/DNS | 在容器裡 curl 或 nc 探活 Gateway 連接埠;核對 ws URL 主機名 | Docker 網路分診清單 |
| 1008+401/403 語意或驗證失敗字樣 | 驗證設定、反向代理剝除標頭 | loopback 直連複現;對照反代前後回應標頭 | Nginx/Caddy 反向代理與 WebSocket 篇 |
| 1006 頻繁、無明顯驗證錯誤 | 閒置斷線、探針誤殺、版本不一致 | 對齊 CLI 與 Gateway 版本;看閘道日誌是否主動回收連線 | Gateway 無回應與 doctor 篇 |
| onboarding UI/CLI 卡住不動 | 狀態機未完成/連接埠被佔 | 檢查監聽連接埠衝突;重跑配對前依官方指引清理暫態 | 官方 Troubleshooting;本文 Runbook |
| 重裝後「第一次就連上」但隨即斷線 | 舊 token 注入層仍在 | 檢查 systemd drop-in、shell profile、CI 變數 | 安裝指令稿篇的 pin 與代理備援節 |
把輸出貼到工單;佔位路徑請替換為你的設定根目錄。與《Docker 持久化卷與權限》一起檢視時,確認掛載沒有把舊設定目錄蓋在新卷之上。
# A) 目前 shell 可見的環境變數(注意大小寫與前綴) env | sort | grep -i OPENCLAW || true # B) 僅範例:若使用 systemd 管理 gateway,查看 drop-in 是否注入 token # systemctl show openclaw-gateway --property=Environment 2>/dev/null || true # C) CLI 版本與 doctor(先淺後深,避免在正式環境盲目 --fix) openclaw --version || true openclaw doctor 2>/dev/null | sed -n '1,40p' || true # D) 列印 CLI 側設定的 gateway URL(子指令依安裝版本為準) # openclaw config get gateway.remoteUrl # 範例名稱,佔位 # E) Docker:進入執行 CLI 的容器核對 ws 目標不是誤設的 127.0.0.1:18789 # docker compose exec cli sh -lc 'env | grep -i OPENCLAW; getent hosts openclaw-gateway || true'
提示:社群 issue 常見「環境變數裡的 token 與檔案不一致」導致 onboarding 長時間卡住;先把 A/B 兩步輸出貼齊,再討論是否改 Compose。
OPENCLAW_GATEWAY_TOKEN 等注入,確認行程重啟後環境乾淨,再寫回設定檔中的單一真源。doctor --deep,在變更視窗內使用並保存輸出。工程對齊說明(非實驗室跑分,僅社群與維運側經驗區間):在公開 issue 討論中,token 雙軌與容器內迴環誤指長期佔據「首次部署失敗」類問題的前列;把環境變數稽核寫進變更範本後,平均排障輪次通常可明顯下降。更重要的是,這類問題與機型 GHz 關係不大,換更大記憶體未必解決握手失敗。
若 Gateway 需要 7×24 上線且避免與個人筆電搶電、搶睡眠,應把「穩定獨佔執行面」與「配對/升級視窗」寫進同一份 SRE 文件;這與企業在遠端 Mac 上常駐 Agent 閘道的實務相一致。
個人裝置上的 Gateway 易受睡眠、VPN 切換與企業憑證更新影響,配對狀態機更難做可稽核回放;一旦 token 輪換涉及多人 CI,筆電場景也缺少固定主機名與穩定迴環邊界,排障日誌碎片化。
把 Gateway 放在可隨時重啟、磁碟與日誌可預測、且與團隊 Runner 同網的獨佔遠端 Mac,通常比在多台個人機之間漂移更有利於收斂 onboarding 問題;需要 Apple Silicon 常駐、並與 CI 金鑰模型一致交付的團隊而言,MACCOME 的 Mac mini M4/M4 Pro 多地區節點與彈性租期,能把「配對排障」與「執行面穩定」放在同一帳單與變更節奏裡。建議先閱讀公開租賃價格說明,再把遠端機納入與《遠端 Mac 常駐維運清單》一致的維運表。
試點建議:選一台與主 CI 同區的遠端機,僅部署 Gateway+最小 smoke job,以雙週複盤跑滿本節六步 Runbook,再決定是否把互動式開發也遷到同一拓樸。
常見問題
應該先跑 doctor 還是先改 token?
先依本文表 1 做「配對/token」分流;若已確認是網路層再並行 doctor 的網路檢查項。公開價格與區域說明見 雲端 Mac 租賃價格說明。
1006 一定比 1008「更不嚴重」嗎?
不一定。應結合相鄰日誌列與是否可穩定複現;把關閉碼當標籤而非結論,避免跳過驗證排查。
可以在正式容器裡長期 export token 嗎?
不建議。較穩妥的是由編排器注入短期憑證或使用機密管理 sidecar,並把「真源」收斂到一處;否則輪換時極易出現雙軌。