本页内容
本页内容
FAQ
网关端口,已运行,远程模式
网关:端口、“已在运行”和远程模式。
网关使用什么端口?
gateway.port 控制 WebSocket + HTTP 的单个复用端口(Control UI、钩子等)。优先级:
为什么openclaw网关状态报告正在运行进程但连接失败?
“正在运行”是supervisor的视图(launchd/systemd/schtasks);连通性检查是CLI实际连接到网关WebSocket。在openclaw gateway status中,将连接目标URL与Listening:(端口上实际绑定的内容)进行比较,并检查Last gateway error:当进程处于活动状态但端口未监听时失败的原因。
为什么openclaw网关状态显示“Config(cli)”和“Config(service)”不同?
你正在编辑一个配置文件,而服务运行的是另一个(通常是 --profile / OPENCLAW_STATE_DIR 不匹配)。
修复方法:从服务应使用的同一个 --profile / 环境中运行:
“另一个网关实例已经在监听”是什么意思?
OpenClaw 通过在启动时立即绑定 WebSocket 监听器来强制执行运行时锁(默认 ws://127.0.0.1:18789)。如果绑定因 EADDRINUSE 失败,就会抛出 GatewayLockError(“另一个网关实例已经在监听”)。
修复:停止另一个实例、释放端口,或使用 openclaw gateway --port <port> 运行。
如何在远程模式下运行 OpenClaw(客户端连接到其他地方的网关)?
将 gateway.mode: "remote" 并指向一个远程 WebSocket URL,也可以附带共享密钥远程凭据:
openclaw gateway仅在gateway.mode为local时启动(或你传入覆盖标志时)。- macOS 应用会监视配置文件,并在这些值变化时实时切换模式。
gateway.remote.token/.password只是客户端侧的远程凭据;它们本身不会启用本地网关认证。
我设置了 gateway.bind tailnet 但它只监听环回
tailnet 绑定会从你的网络接口中选择一个 Tailscale IP(100.64.0.0/10)。如果机器不在 Tailscale 上(或接口已关闭),网关会回退到 loopback,而不是暴露另一个网络接口。
修复:在该主机上启动 Tailscale 并重启网关,或者明确切换为 gateway.bind: "loopback" / "lan"。
tailnet 是显式的;auto 优先选择 loopback。使用 gateway.bind: "tailnet" 可将非 loopback 暴露限制在 Tailnet 内,同时保留所需的同主机 127.0.0.1 监听。
我可以在同一主机上运行多个网关吗?
通常不行——一个网关可以运行多个消息通道和 agents。只有在需要冗余(例如一个救援 bot)或硬隔离时才使用多个网关,并且要为每个实例隔离各自的 OPENCLAW_CONFIG_PATH、OPENCLAW_STATE_DIR、agents.defaults.workspace 和唯一的 gateway.port。
推荐:每个实例使用 openclaw --profile <name> ...(会自动创建 ~/.openclaw-<name>),每个 profile 配置使用唯一的 gateway.port(或手动运行时使用 --port),并通过 openclaw --profile <name> gateway install 为每个 profile 安装独立服务。
Profiles 也会作为服务名后缀:launchd ai.openclaw.<profile>、systemd openclaw-gateway-<profile>.service、Windows OpenClaw Gateway (<profile>)。未限定的 openclaw-gateway systemd 单元只存在于默认 profile;旧的、重命名前的 systemd 单元名 clawdbot-gateway 会自动迁移。
完整指南:多个网关。
“无效握手”/代码 1008 是什么意思?
网关是一个 WebSocket 服务器,并且期望第一条消息是 connect 帧。任何其他内容都会以 code 1008(违反策略)关闭连接。
常见原因:您在浏览器而不是 WS 客户端中打开了 HTTP URL,使用了错误的 port/path,或者 proxy/tunnel 剥离了身份验证标头或发送了非网关请求。
修复:使用 WS URL(ws://<host>:18789,或通过 HTTPS 使用 wss://...),不要在普通浏览器标签页中打开 WS 端口,并在启用认证时在 connect 帧中包含 token/password。CLI/TUI 示例:
协议细节:网关协议。