OpenClaw 生产实践

OpenClaw SSH
端口转发诊断实战

2026-05-14 约 6 分钟阅读 nozcloud 团队 OpenClaw · SSH · CI
本文适合已在 nozcloud 德国(法兰克福)远程 Mac 上运行 OpenClaw、但希望将攻击面缩小到"不在局域网暴露网关"的团队。核心方案:将监听器绑定到回环地址、启用网关令牌鉴权、通过 SSH LocalForward 访问服务,并将 openclaw doctor --non-interactiveopenclaw 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 任务推送到生产环境。

  1. SSH 基础配置。为 OpenClaw 创建专用 macOS 用户。仅安装你已审批的 OpenClaw 版本,然后通过密钥验证非交互式 SSH(如策略允许,在 sshd_config 中为该账户禁用密码认证)。
  2. 在 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 以避免启动时产生歧义。
  3. 注入令牌,而非将密钥路径提交到 Git。通过 LaunchDaemon 的 EnvironmentVariables 字典或具有严格 POSIX 权限的 root 所有环境文件来导出 OPENCLAW_GATEWAY_TOKEN。首次引导时,可在安全的管理员 Shell 中执行 openclaw doctor --generate-gateway-token
  4. 无 TTY 健康检查。依次运行 openclaw config validateopenclaw doctor --non-interactive--non-interactive 会跳过交互提示、应用安全迁移,并避免交互式 OAuth 刷新——非常适合 cron 和 CI 场景。
  5. 安装或重启网关服务。使用已标准化的厂商流程(例如带你已固定参数的 openclaw gateway install)。确认 openclaw gateway status 显示监听器仅在回环地址上处于健康状态。
  6. 从本地工作站建立 SSH LocalForward。运行 ssh -N -L 18789:127.0.0.1:18789 openclaw-svc@germany-host.example(请替换用户名和主机名)。本地工具即可访问 ws://127.0.0.1:18789,同时流量通过 SSH 加密传输。
  7. 验证令牌路径。隧道建立后,从笔记本电脑按运维手册中的 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.bindgateway.authhooksgateway.http 端点的修改,均需双人审查。
  • 在 doctor 修复前备份配置:升级前保留 openclaw.json 的带时间戳副本;若迁移导致鉴权元数据丢失,从制品存储恢复并重启服务。
  • 记录应急操作流程:若有人在事故响应期间临时放宽绑定模式,请立即提交工单,并在 SLA 窗口内回滚。

合并门控方案(GitHub Actions 伪代码示例)

将生产配置的只读固定件或经过脱敏处理的摘录存入 Git——绝不提交生产令牌。通过 CI 密钥注入一个一次性的 OPENCLAW_GATEWAY_TOKEN,使需要环境变量替换的验证路径能够正常执行。该任务应包含以下步骤:

  1. 安装与生产环境相同的 OpenClaw minor 版本。
  2. openclaw config validate 应用于已检入的模板与测试密钥的合并结果。
  3. 运行 openclaw doctor --non-interactive;若告警超过策略阈值则失败(许多团队将任何"鉴权缺失"行视为硬性错误)。
  4. 可选:在夜间运行 openclaw doctor --deep 而非每次 PR——深度扫描耗时较长且可能需要提升权限。

升级问题请遵循内部运维手册;如在资源调配或 SSH 访问方面遇到阻碍,可通过下方帮助中心链接提交工单。

本文仅提供运维操作指引。OpenClaw 的行为随版本迭代而变化——在自动化流程上线前,请务必对照上述官方文档链接核查相关参数和默认值。
法兰克福 · 远程 Mac

需要专用硬件来承载此方案?

通过购买页面在德国节点部署 Mac mini,在定价页面匹配统一内存与模型负载,如资源调配或 SSH 访问遇到问题请联系帮助中心。

Mac mini M4 · 专用云主机
裸机性能 六大区域 随时扩容
起价
$107.9 /月