給需在遠端 Mac讓 CI、VPN 或反向代理打到 OpenClaw 閘道、且監聽須超出 127.0.0.1 的讀者。Node 22+、官方 install/npm -g、SecretRef 語意的 OPENCLAW_GATEWAY_TOKEN,以及對齊 docs.openclaw.ai 的驗證與排障。延伸:設定驗證門禁、閘道安全硬化、環境合併 CI 門禁。

為何「只聽迴環」在遠端 Mac 自動化裡不夠用

託管 Mac 上常與 npm/PyPI 代理、預拉、Webhook 同機;呼叫端多在 launchd 或隔網 CI,而非你的互動 shell。若只靠手動 curl,易遇 PATH 分裂、權杖未進守護行程,或一放寬監聽即觸發上游 fail-closed。

  1. PATH 分裂:nvm/fnm 載入的 openclaw 與守護行程實際載入的不一致。
  2. 暴露面:監聽改到區網或 VPN 介面時,必須同時滿足文件要求的鑑權與防火牆,否則行程可能直接退出。
  3. 代理聯動:閘道掛了會拖住同一節點上的依賴預拉與回呼;先用帶 Bearer 的探針驗收,再讓整池 job 打進來。

監聽範圍與鑑權深度(決策表)

監聽型態 典型用途 權杖與網路備註
僅 127.0.0.1 本機 doctor、同機 sidecar 反向代理 若文件要求入站 HTTP 仍須鑑權,請保留 OPENCLAW_GATEWAY_TOKEN。
站內或 VPN 介面 tailnet 內 CI 直呼閘道、不經公網 搭配防火牆與權杖輪替;成員變更時一併重發祕文。
區網 IP 相鄰子網 Webhook 入站 強制 Bearer、限流與審計請對齊內部 Runbook 與官方安全段落。

最小可複現步驟

步驟一(Node)。使用 Node 22.14 LTS 或 Node 24;每個 job 第一行輸出 node -v,映像升級時才能對照 semver 門禁。

步驟二(安裝)。依 docs.openclaw.ai 的 Installer(curl)或核准版 npm install -g "openclaw@^…";接著 command -v openclaw、openclaw --version。Homebrew 補裝失敗見 環境合併 CI 門禁。

node -v npm install -g "openclaw@^2026.3.0" command -v openclaw openclaw --version

步驟三(目錄)。為每個守護或 job 指定獨立 OPENCLAW_HOME/OPENCLAW_CONFIG_HOME,chmod 700。

步驟四(SecretRef 式注入)。把祕文對應到行程環境的方式,語意上等同 Kubernetes SecretRef:Actions 用 env:、Azure 用祕密變數、macOS 用 plist EnvironmentVariables。標準化使用 OPENCLAW_GATEWAY_TOKEN 作為閘道 HTTP 鑑權;複製祕文時避免尾隨換行。

步驟五(非迴環綁定)。僅在讀完官方閘道監聽、TLS、暴露面後再改監聽位址。若由 nginx/Caddy 終止 TLS,可讓 OpenClaw 仍聽回環,由反向代理轉發已驗證流量。變更 plist 後請 launchctl unload/load 或等價重載。

步驟六(驗證)。執行 openclaw doctor 與 openclaw config validate,建議與 設定驗證門禁 相同,將標準錯誤併入單一日誌再判斷門禁。

export OPENCLAW_GATEWAY_TOKEN="$(cat "$RUNNER_TEMP/gw.token")" openclaw doctor openclaw config validate --config "$OPENCLAW_CONFIG_HOME/openclaw.json" curl -fsS -o /dev/null -w "%{http_code}" \ -H "Authorization: Bearer $OPENCLAW_GATEWAY_TOKEN" \ "http://127.0.0.1:18789/health"

拒絕無鑑權或「不安全組合」啟動:常見線索對照

上游對「放寬監聽卻未滿足鑑權」多採 fail-closed;stderr 提到缺憑證或綁定策略時先當防護。請用已安裝次版本的文件/release note 對照用詞。

現象或日誌線索 可能原因 與官方敘述對齊的處理
一放寬非迴環監聽,行程立刻結束 已啟用外網/區網暴露但 OPENCLAW_GATEWAY_TOKEN 為空 自祕文庫注入權杖,重載 plist 或 job;重讀安全章節。
CI 對健康路由收到 HTTP 401 請求缺少 Authorization: Bearer 或拼字錯誤 對齊文件中的標頭格式;輪替後確認無尾隨換行。
互動 shell 裡 doctor 過關,守護仍拒絕 launchd plist 未帶新變數 比對 EnvironmentVariables;單次變更只做一輪 unload/load。
config validate 印出 invalid-key 路徑 手改 JSON 與 schema 漂移 合併前必跑 validate;必要時自門禁文備份還原檢查點。

硬化範式見 閘道安全硬化;若仍卡住,請帶上 openclaw --version 與去敏後的合併日誌對照官方 troubleshooting。

上線前檢查清單

  • 已記錄 Node 22.14+ 或 24,且與全域 openclaw 路徑一致。
  • launchd 與 CI job 使用同一份 OPENCLAW_GATEWAY_TOKEN 來源,未寫入日誌。
  • 防火牆僅放行文件或內規允許的來源子網。
  • doctor 與 config validate 併入單一綠色門禁日誌。
  • 帶 Bearer 的 curl 對健康路由為 200;移除標頭應為 401。

與遠端 Mac 上 CI、代理拉取的聯動價值

閘道與 Registry/套件代理同機可重用 TLS、DNS 與磁碟觀測;預拉或 Webhook 前先打帶 Bearer 的閘道探針,可及早發現權杖或 validate 問題,避免整池 job 尾端才 401。

小結與站內導覽

複習:Node 22+、官方 install 或 npm -g、SecretRef 語意的 OPENCLAW_GATEWAY_TOKEN、非迴環綁定前的官方安全閱讀、doctor/config validate 與 Bearer 探針。需要長期託管 Apple Silicon 同時承載閘道與 CI/代理拉取,歡迎先瀏覽定價,再於購買頁完成下單;說明中心、主控台與部落格列表皆為站內公開頁。

總結:結構化資料含 BlogPosting、BreadcrumbList、HowTo。非迴環綁定務必與權杖與防火牆同檔升級;與 CI、代理拉取同機時,先用探針 fail-closed 再放量。

遠端 Mac × OpenClaw × CI/代理

專用節點承載閘道與拉取,減少跨境試錯成本

以下皆為免登入可開之站內公開頁。