本文適合已在 nozcloud 德國(法蘭克福)遠端 Mac 上運行 OpenClaw、但希望將攻擊面縮小到「不在區域網路暴露閘道」的團隊。核心方案:將監聽器綁定到回環地址、啟用閘道令牌鑑權、透過 SSH LocalForward 存取服務,並將
openclaw doctor --non-interactive 與 openclaw config validate 作為合併門控。所有行為均以上游官方文件為準——包括 配置參考、CLI doctor 以及 閘道 doctor。
目標:僅限回環的控制面,最小化暴露面
OpenClaw 閘道預設在 18789 連接埠上複用 WebSocket 和 HTTP。配置參考指出,gateway.bind: "loopback" 會將監聽器鎖定在本地回環地址,而非回環綁定需要啟用閘道鑑權(令牌、密碼或嚴格配置的受信代理)。對於共享遠端 Mac,最佳方案是:回環綁定 + 令牌模式,運維人員和自動化工具透過加密隧道存取該連接埠,而非將 18789 暴露在主機的公網介面上。
可與本系列配套文章結合閱讀:OpenClaw 在 nozcloud 德國節點:守護程序上線與合規基線。如需購買或調整配置,請造訪購買頁面並在定價頁面比較套餐。
127.0.0.1
回環地址綁定
SSH -L
LocalForward 隧道
CI
配置驗證 + doctor
最小可重現步驟(遠端 Mac)
建議先在測試機上執行以下流程,驗證通過後再將同一套 plist、SSH 配置和 CI 任務推送到生產環境。
- SSH 基礎配置。為 OpenClaw 建立專用 macOS 使用者。僅安裝您已審批的 OpenClaw 版本,然後透過金鑰驗證非互動式 SSH(如策略允許,在
sshd_config中為該帳號停用密碼認證)。 - 在 JSON5 中宣告綁定與鑑權。在
~/.openclaw/openclaw.json中保持gateway.mode: "local",設定gateway.bind: "loopback",並配置gateway.auth.mode: "token"和gateway.auth.token: "${OPENCLAW_GATEWAY_TOKEN}"。若 token 與 password 物件同時存在,務必顯式指定gateway.auth.mode以避免啟動時產生歧義。 - 注入令牌,而非將金鑰路徑提交到 Git。透過 LaunchDaemon 的
EnvironmentVariables字典或具有嚴格 POSIX 權限的 root 所有環境檔案來匯出OPENCLAW_GATEWAY_TOKEN。首次引導時,可在安全的管理員 Shell 中執行openclaw doctor --generate-gateway-token。 - 無 TTY 健康檢查。依次執行
openclaw config validate和openclaw doctor --non-interactive。--non-interactive會跳過互動提示、套用安全遷移,並避免互動式 OAuth 重新整理——非常適合 cron 和 CI 場景。 - 安裝或重啟閘道服務。使用已標準化的廠商流程(例如帶您已固定參數的
openclaw gateway install)。確認openclaw gateway status顯示監聽器僅在回環地址上處於健康狀態。 - 從本地工作站建立 SSH LocalForward。執行
ssh -N -L 18789:127.0.0.1:18789 openclaw-svc@germany-host.example(請替換使用者名稱和主機名稱)。本地工具即可存取ws://127.0.0.1:18789,同時流量透過 SSH 加密傳輸。 - 驗證令牌路徑。隧道建立後,從筆記型電腦按運維手冊中的 Bearer Token 方式連接到
127.0.0.1:18789。故意傳送一次錯誤令牌:應看到鑑權失敗而非靜默通過——這是端到端強制驗證的證明。
為什麼不綁定到區域網路?在沒有補償控制措施的情況下將 18789 開放到
0.0.0.0,會大幅增加服務發現和暴力破解的風險。如確實需要非 SSH 存取,請在前面放置啟用了 mTLS 或 Tailscale Serve 的加固反向代理,並重新閱讀配置參考中的受信代理章節,而不是跳過鑑權。
合規導向的暴露面檢查清單
以下條目不構成法律建議;它們將「最小權限」原則轉化為安全審查人員可以核查的具體門控點。
- 禁止在 Shell 歷史中留下明文令牌:透過 LaunchDaemon 或 CI 密鑰注入器載入密鑰,絕不在共享螢幕會話中內聯
export。 - 將運維 SSH 帳號與服務帳號分離:人工使用者使用各自的 UNIX 主體;OpenClaw 守護程序使用者不應擁有您的個人 dotfiles。
- 在 PR 中審查閘道配置變更:任何涉及
gateway.bind、gateway.auth、hooks或gateway.http端點的修改,均需雙人審查。 - 在 doctor 修復前備份配置:升級前保留
openclaw.json的帶時間戳副本;若遷移導致鑑權元資料遺失,從製品儲存恢復並重啟服務。 - 記錄應急操作流程:若有人在事故回應期間臨時放寬綁定模式,請立即提交工單,並在 SLA 窗口內回滾。
合併門控方案(GitHub Actions 虛擬碼範例)
將生產配置的唯讀固定件或經過脫敏處理的摘錄存入 Git——絕不提交生產令牌。透過 CI 密鑰注入一個一次性的 OPENCLAW_GATEWAY_TOKEN,使需要環境變數替換的驗證路徑能夠正常執行。該任務應包含以下步驟:
- 安裝與生產環境相同的 OpenClaw minor 版本。
- 將
openclaw config validate套用於已簽入的範本與測試密鑰的合併結果。 - 執行
openclaw doctor --non-interactive;若告警超過策略閾值則失敗(許多團隊將任何「鑑權缺失」行視為硬性錯誤)。 - 可選:在夜間執行
openclaw doctor --deep而非每次 PR——深度掃描耗時較長且可能需要提升權限。
升級問題請遵循內部運維手冊;如在資源調配或 SSH 存取方面遇到阻礙,可透過下方說明中心連結提交工單。
本文僅提供運維操作指引。OpenClaw 的行為隨版本迭代而變化——在自動化流程上線前,請務必對照上述官方文件連結核查相關參數和預設值。