openclaw node

运行一个无头节点主机,连接到 Gateway WebSocket 并在本机暴露 system.run / system.which 能力。

为什么要用节点主机?

当你需要让 agent 在网络中的其他机器上执行命令,但又不想在那些机器上安装完整的 macOS 伴侣应用时,节点主机就派上用场了。

常见场景:

  • 在远程 Linux / Windows 机器上执行命令(构建服务器、实验室机器、NAS)。
  • 让 gateway 端的执行保持沙箱隔离,但把经过审批的命令委托给其他主机。
  • 为自动化或 CI 节点提供一个轻量的无头执行目标。

执行仍然受到执行审批和节点主机上 per-agent 允许列表的保护,所以命令访问权限是可以精确控制的。

浏览器代理(零配置)

节点主机会自动广播浏览器代理能力(除非在节点上禁用了 browser.enabled)。这样 agent 就可以直接在该节点上使用浏览器自动化,无需额外配置。

如果需要在节点上禁用:

{
  nodeHost: {
    browserProxy: {
      enabled: false,
    },
  },
}

前台运行

openclaw node run --host <gateway-host> --port 18789

参数:

  • --host <host>:Gateway WebSocket 主机(默认:127.0.0.1
  • --port <port>:Gateway WebSocket 端口(默认:18789
  • --tls:使用 TLS 连接 gateway
  • --tls-fingerprint <sha256>:预期的 TLS 证书指纹(sha256)
  • --node-id <id>:覆盖节点 id(会清除配对 token)
  • --display-name <name>:覆盖节点显示名称

节点主机的 Gateway 认证

openclaw node runopenclaw node install 从配置 / 环境变量解析 gateway 认证(节点命令没有 --token / --password 参数):

  • 优先检查 OPENCLAW_GATEWAY_TOKEN / OPENCLAW_GATEWAY_PASSWORD
  • 然后是本地配置回退:gateway.auth.token / gateway.auth.password
  • 本地模式下,节点主机不会继承 gateway.remote.token / gateway.remote.password
  • 如果 gateway.auth.token / gateway.auth.password 通过 SecretRef 显式配置但未解析,节点认证会直接失败(不会回退到远程)。
  • gateway.mode=remote 模式下,远程客户端字段(gateway.remote.token / gateway.remote.password)按照远程优先级规则也可用。
  • 遗留的 CLAWDBOT_GATEWAY_* 环境变量在节点主机认证解析中会被忽略。

后台服务

把无头节点主机安装为用户服务。

openclaw node install --host <gateway-host> --port 18789

参数:

  • --host <host>:Gateway WebSocket 主机(默认:127.0.0.1
  • --port <port>:Gateway WebSocket 端口(默认:18789
  • --tls:使用 TLS 连接 gateway
  • --tls-fingerprint <sha256>:预期的 TLS 证书指纹(sha256)
  • --node-id <id>:覆盖节点 id(会清除配对 token)
  • --display-name <name>:覆盖节点显示名称
  • --runtime <runtime>:服务运行时(nodebun
  • --force:已安装时强制重新安装 / 覆盖

管理服务:

openclaw node status
openclaw node stop
openclaw node restart
openclaw node uninstall

openclaw node run 进行前台运行(不使用服务)。

服务命令支持 --json 输出机器可读格式。

配对

首次连接时会在 Gateway 上创建一个待审批的设备配对请求(role: node)。 通过以下命令审批:

openclaw devices list
openclaw devices approve <requestId>

节点主机会把自己的 node id、token、显示名称和 gateway 连接信息存储在 ~/.openclaw/node.json 中。

执行审批

system.run 受本地执行审批机制控制:

  • ~/.openclaw/exec-approvals.json
  • Exec approvals
  • openclaw approvals --node <id|name|ip>(从 Gateway 端编辑)