网关架构
网关 (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安全层
认证机制
- Token 验证: 通过
CLAWDBOT_GATEWAY_TOKEN环境变量或配置 - 设备身份验证: 通过配对和挑战签名
- 配对批准: 新设备需要人工批准
网络安全
- 默认绑定到 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