Web(网关)

网关从与网关 WebSocket 相同的端口提供一个小型浏览器控制 UI(Vite + Lit):

  • 默认:http://<host>:18789/
  • 可选前缀:设置 gateway.controlUi.basePath(例如 /openclaw

功能位于控制 UI 中。本页重点介绍绑定模式、安全性和面向 Web 的界面。

Webhooks

hooks.enabled=true 时,网关还会在同一 HTTP 服务器上公开一个小型 webhook 端点。

参见 网关配置 → hooks 了解身份验证和有效负载。

配置(默认启用)

当资源存在时(dist/control-ui),控制 UI 默认启用。您可以通过配置控制它:

json
{
  "gateway": {
    "controlUi": { 
      "enabled": true, 
      "basePath": "/openclaw" // basePath 可选
    }
  }
}

Tailscale 访问

集成 Serve(推荐)

将网关保持在回环地址上,让 Tailscale Serve 代理它:

json
{
  "gateway": {
    "bind": "loopback",
    "tailscale": { "mode": "serve" }
  }
}

然后启动网关:

bash
openclaw gateway

打开:

  • https://<magicdns>/ (或您配置的 gateway.controlUi.basePath

Tailnet 绑定 + 令牌

json
{
  "gateway": {
    "bind": "tailnet",
    "controlUi": { "enabled": true },
    "auth": { "mode": "token", "token": "your-token" }
  }
}

然后启动网关(非回环绑定需要令牌):

bash
openclaw gateway

打开:

  • http://<tailscale-ip>:18789/ (或您配置的 gateway.controlUi.basePath

公共互联网(Funnel)

json
{
  "gateway": {
    "bind": "loopback",
    "tailscale": { "mode": "funnel" },
    "auth": { "mode": "password" } // 或 OPENCLAW_GATEWAY_PASSWORD
  }
}

安全注意事项

  • 默认情况下需要网关身份验证(令牌/密码或 Tailscale 身份标头)。
  • 非回环绑定仍需要共享令牌/密码(gateway.auth 或环境变量)。
  • 向导默认生成网关令牌(即使在回环上)。
  • UI 发送 connect.params.auth.tokenconnect.params.auth.password
  • 对于非回环控制 UI 部署,显式设置 gateway.controlUi.allowedOrigins(完整来源)。没有它,网关启动默认被拒绝。
  • gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=true 启用 Host 标头来源回退模式,但这是一个危险的安全降级。
  • 使用 Serve 时,当 gateway.auth.allowTailscale 为 true 时,Tailscale 身份标头可以满足控制 UI/WebSocket 身份验证(不需要令牌/密码)。
  • HTTP API 端点仍需要令牌/密码。设置 gateway.auth.allowTailscale: false 以要求显式凭据。参见 Tailscale 和安全性。此无令牌流程假定网关主机是受信任的。
  • gateway.tailscale.mode: "funnel" 需要 gateway.auth.mode: "password"(共享密码)。

构建 UI

网关从 dist/control-ui 提供静态文件。使用以下命令构建它们:

bash
pnpm ui:build # 首次运行时自动安装 UI 依赖项

相关文档

非官方中文版本

本网站为非官方中文版本。此项目的目的是为了让国内用户快速了解如何使用 OpenClaw 而汉化的内容。 官方英文文档请访问 docs.openclaw.ai