加入我们的 Telegram 社群 (clawdbotCN) 学习分享和了解更多 →
核心概念
网关架构

网关架构

网关 (Gateway) 是 Clawdbot 的核心组件,作为单一的守护进程管理所有消息接口。

概述

网关是整个系统的控制中心:

  • 单一入口点: 所有渠道连接都通过网关
  • 消息路由: 将消息分发到正确的代理
  • 状态管理: 维护所有会话和连接状态
  • WebSocket API: 提供实时通信接口

连接模型

客户端和节点通过 WebSocket 连接到网关:

┌────────────┐     WebSocket     ┌─────────────┐
│   客户端    │ ◄──────────────► │    网关     │
│(控制面板)   │                  │  (Gateway)  │
└────────────┘                   └──────┬──────┘

┌────────────┐     WebSocket            │
│   节点     │ ◄────────────────────────┘
│  (Node)    │
└────────────┘

消息协议

请求-响应格式:

// 请求
{type: "req", id: "1", method: "status", params: {}}
 
// 响应
{type: "res", id: "1", ok: true, payload: {...}}
 
// 错误响应
{type: "res", id: "1", ok: false, error: "message"}

架构原则

一主机一网关

每个主机运行一个网关实例,控制该主机上的所有渠道连接。

# 启动网关
clawdbot gateway run

基于设备的配对

节点通过显式声明其角色和能力来连接:

{
  role: "node",
  capabilities: ["browser", "shell", "media"]
}

本地信任模型

  • 同主机连接: 自动批准
  • 远程连接: 需要挑战签名验证

网关配置

{
  gateway: {
    // 绑定地址
    bind: "127.0.0.1:18789",
 
    // 认证令牌 (可选)
    token: "your-secure-token",
 
    // 心跳间隔 (毫秒)
    heartbeat: 30000,
 
    // 最大连接数
    maxConnections: 100
  }
}

远程访问

推荐方式: Tailscale VPN

{
  gateway: {
    bind: "0.0.0.0:18789",
    token: "your-secure-token"
  }
}

通过 Tailscale IP 访问网关。

SSH 隧道

ssh -L 18789:127.0.0.1:18789 user@server

安全层

认证机制

  1. Token 验证: 通过 CLAWDBOT_GATEWAY_TOKEN 环境变量或配置
  2. 设备身份验证: 通过配对和挑战签名
  3. 配对批准: 新设备需要人工批准

网络安全

  • 默认绑定到 loopback (127.0.0.1)
  • 支持 TLS (通过反向代理)
  • 推荐使用 VPN 进行远程访问

命令参考

# 前台运行
clawdbot gateway run
 
# 作为服务运行
clawdbot gateway install
clawdbot gateway start
clawdbot gateway stop
clawdbot gateway restart
 
# 状态检查
clawdbot gateway status

健康检查

# 基本状态
clawdbot status
 
# 深度检查
clawdbot status --deep
 
# 实时日志
clawdbot logs --follow

下一步