本文适合已在 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 的行为随版本迭代而变化——在自动化流程上线前,请务必对照上述官方文档链接核查相关参数和默认值。