OpenClaw从入门到应用——CLI:Gateway
通过OpenClaw实现副业收入:《OpenClaw赚钱实录:从“养龙虾“到可持续变现的实践指南》
Gateway CLI
Gateway 是 OpenClaw 的 WebSocket 服务器(通道、节点、会话、钩子)。本页面中的子命令位于openclaw gateway …下。
相关文档:
- /gateway/bonjour
- /gateway/discovery
- /gateway/configuration
运行网关
运行本地网关进程:
openclaw gateway前台别名:
openclaw gateway run注意:
- 默认情况下,除非在
~/.openclaw/openclaw.json中设置了gateway.mode=local,否则网关会拒绝启动。对于临时/开发运行,请使用--allow-unconfigured。 - 禁止绑定到环回地址以外的地址且无认证(安全防护栏)。
SIGUSR1在授权时触发进程内重启(commands.restart默认启用;设置commands.restart: false可阻止手动重启,而网关工具/配置应用/更新仍然允许)。SIGINT/SIGTERM处理程序会停止网关进程,但不会恢复任何自定义终端状态。如果你用 TUI 或原始模式输入包装了 CLI,请在退出前恢复终端。
选项
--port:WebSocket 端口(默认来自配置/env;通常为18789)。--bind:监听器绑定模式。--auth:覆盖认证模式。--token:覆盖令牌(同时为进程设置OPENCLAW_GATEWAY_TOKEN)。--password:覆盖密码。警告:内联密码可能会在本地进程列表中暴露。--password-file:从文件中读取网关密码。--tailscale:通过 Tailscale 暴露网关。--tailscale-reset-on-exit:关闭时重置 Tailscale serve/funnel 配置。--allow-unconfigured:允许在配置中没有gateway.mode=local时启动网关。--dev:创建开发配置 + 工作区(如果缺失),跳过 BOOTSTRAP.md。--reset:重置开发配置 + 凭据 + 会话 + 工作区(需要--dev)。--force:启动前终止所选端口上任何已有的监听器。--verbose:详细日志。--claude-cli-logs:仅在控制台显示 claude-cli 日志(并启用其 stdout/stderr)。--ws-log:WebSocket 日志样式(默认auto)。--compact:--ws-log compact的别名。--raw-stream:将原始模型流事件记录到 jsonl。--raw-stream-path:原始流 jsonl 路径。
查询正在运行的网关
所有查询命令都使用 WebSocket RPC。输出模式:
- 默认:人类可读(TTY 中带颜色)。
--json:机器可读 JSON(无样式/旋转指示器)。--no-color(或NO_COLOR=1):禁用 ANSI,同时保持人类布局。
共享选项(在支持的命令中):
--url:网关 WebSocket URL。--token:网关令牌。--password:网关密码。--timeout:超时/预算(因命令而异)。--expect-final:等待“最终”响应(代理调用)。
注意:当你设置了--url时,CLI 不会回退到配置或环境凭据。必须显式传递--token或--password。缺少显式凭据将报错。
gateway health
openclaw gateway health--urlws://127.0.0.1:18789gateway status
gateway status显示网关服务(launchd/systemd/schtasks)以及一个可选的 RPC 探测。
openclaw gateway status openclaw gateway status--jsonopenclaw gateway status --require-rpc选项:
--url:覆盖探测 URL。--token:用于探测的令牌认证。--password:用于探测的密码认证。--timeout:探测超时(默认10000)。--no-probe:跳过 RPC 探测(仅查看服务)。--deep:也扫描系统级服务。--require-rpc:当 RPC 探测失败时以非零退出。不能与--no-probe一起使用。
注意:
gateway status在可能的情况下解析配置中的认证 SecretRef 以进行探测认证。- 如果在此命令路径中所需的认证 SecretRef 无法解析,探测认证可能失败;请显式传递
--token/--password,或先解析密钥源。 - 在脚本和自动化中使用
--require-rpc,当仅监听服务不够且需要网关 RPC 本身健康时。 - 在 Linux systemd 安装中,服务认证漂移检查会从单元中读取
Environment=和EnvironmentFile=的值(包括%h、带引号的路径、多个文件以及可选的-文件)。
gateway probe
gateway probe是“调试一切”命令。它总是探测:
- 你配置的远程网关(如果设置了),以及
- 本地主机(环回)即使配置了远程。
如果多个网关可达,它会打印所有网关。当你使用隔离的配置文件/端口(例如救援机器人)时支持多个网关,但大多数安装仍只运行一个网关。
openclaw gateway probe openclaw gateway probe--json解释:
Reachable: yes表示至少有一个目标接受了 WebSocket 连接。RPC: ok表示详细的 RPC 调用(health/status/system-presence/config.get)也成功了。RPC: limited - missing scope: operator.read表示连接成功但详细的 RPC 受作用域限制。这被报告为降级的可达性,而非完全失败。- 退出码仅在没有任何探测目标可达时为非零。
JSON 说明(--json):
- 顶层:
ok:至少有一个目标可达。degraded:至少有一个目标的详细 RPC 受作用域限制。
- 每个目标(
targets[].connect):ok:连接后的可达性 + 降级分类。rpcOk:详细 RPC 成功。scopeLimited:由于缺少 operator 作用域,详细 RPC 失败。
通过 SSH 远程(与 Mac 应用一致)
macOS 应用的“远程 SSH”模式使用本地端口转发,使得远程网关(可能仅绑定到环回)变为在ws://127.0.0.1:<port>可达。CLI 等效命令:
openclaw gateway probe--sshuser@gateway-host选项:
--ssh:user@host或user@host:port(端口默认22)。--ssh-identity:身份文件。--ssh-auto:选择第一个发现的网关主机作为 SSH 目标(仅限 LAN/WAB)。
配置(可选,用作默认值):
gateway.remote.sshTargetgateway.remote.sshIdentity
gateway call <method>
底层 RPC 辅助命令。
openclaw gateway call status openclaw gateway call logs.tail--params'{"sinceMs": 60000}'管理网关服务
openclaw gatewayinstallopenclaw gateway start openclaw gateway stop openclaw gateway restart openclaw gateway uninstall注意:
gateway install支持--port、--runtime、--token、--force、--json。- 当令牌认证需要令牌且
gateway.auth.token由 SecretRef 管理时,gateway install会验证 SecretRef 是否可解析,但不会将解析后的令牌持久化到服务环境元数据中。 - 如果令牌认证需要令牌但配置的令牌 SecretRef 无法解析,安装将失败关闭,而不是持久化回退的明文。
- 对于
gateway run的密码认证,优先使用OPENCLAW_GATEWAY_PASSWORD、--password-file或由 SecretRef 支持的gateway.auth.password,而不是内联的--password。 - 在推断的认证模式下,仅限 shell 的
OPENCLAW_GATEWAY_PASSWORD/CLAWDBOT_GATEWAY_PASSWORD不会放宽安装令牌要求;在安装托管服务时,请使用持久的配置(gateway.auth.password或配置env)。 - 如果同时配置了
gateway.auth.token和gateway.auth.password,且gateway.auth.mode未设置,则安装会被阻止,直到显式设置模式为止。 - 生命周期命令接受
--json以用于脚本。
发现网关(Bonjour)
gateway discover扫描网关信标(_openclaw-gw._tcp)。
- 组播 DNS-SD:
local. - 单播 DNS-SD(广域 Bonjour):选择一个域(例如
openclaw.internal.)并设置 split DNS + DNS 服务器;参见 /gateway/bonjour
只有启用了 Bonjour 发现(默认)的网关才会播发信标。广域发现记录包含(TXT):
role(网关角色提示)transport(传输提示,例如gateway)gatewayPort(WebSocket 端口,通常为18789)sshPort(SSH 端口;如果不存在则默认为22)tailnetDns(MagicDNS 主机名,当可用时)gatewayTls/gatewayTlsSha256(TLS 启用 + 证书指纹)cliPath(远程安装的可选提示)
gateway discover
openclaw gateway discover选项:
--timeout:每个命令的超时(浏览/解析);默认2000。--json:机器可读输出(同时禁用样式/旋转指示器)。
示例:
openclaw gateway discover--timeout4000openclaw gateway discover--json|jq'.beacons[].wsUrl'