288 lines
6.7 KiB
Markdown
288 lines
6.7 KiB
Markdown
# OpenClaw 多机部署指南
|
|
|
|
## 🏠 部署架构
|
|
|
|
### 当前配置
|
|
|
|
| 机器 | IP地址 | 角色 | 代号 |
|
|
|------|--------|------|------|
|
|
| 1号机 | 192.168.0.31 | 主机 | 青龙 🐉 |
|
|
| 2号机 | 192.168.0.32 | 守护者 | 守护者 🛡️ |
|
|
|
|
### 架构图
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────┐
|
|
│ 网络环境 │
|
|
│ 代理: 192.168.0.66:7890 (HTTP/HTTPS) │
|
|
└─────────────────────────────────────────────────────────┘
|
|
│
|
|
┌───────────────┴───────────────┐
|
|
▼ ▼
|
|
┌───────────────┐ ┌───────────────┐
|
|
│ 1号机 │ │ 2号机 │
|
|
│ 主机/青龙 │ │ 守护者 │
|
|
│ :18789 │ │ :18789 │
|
|
│ 主Telegram │ │ 辅助Telegram │
|
|
│ Bot: dctc6788│ │ Bot: dctc_02 │
|
|
└───────────────┘ └───────────────┘
|
|
```
|
|
|
|
## 🚀 部署步骤
|
|
|
|
### 1. SSH 连接配置
|
|
|
|
```bash
|
|
# 创建 SSH 别名
|
|
cat >> ~/.ssh/config << EOF
|
|
|
|
Host 1号机
|
|
HostName 192.168.0.31
|
|
User root
|
|
Port 22
|
|
|
|
Host 2号机
|
|
HostName 192.168.0.32
|
|
User root
|
|
Port 22
|
|
EOF
|
|
|
|
# 测试连接
|
|
ssh 1号机
|
|
ssh 2号机
|
|
```
|
|
|
|
### 2. 2号机初始化
|
|
|
|
```bash
|
|
# SSH连接
|
|
sshpass -p '3efvVGY&' ssh -o StrictHostKeyChecking=no root@192.168.0.32
|
|
|
|
# 配置代理
|
|
export https_proxy=http://192.168.0.66:7890
|
|
export http_proxy=http://192.168.0.66:7890
|
|
|
|
# 安装 OpenClaw
|
|
npm install --global openclaw@latest
|
|
|
|
# 启动向导
|
|
openclaw onboard --install-daemon
|
|
```
|
|
|
|
### 3. systemd 服务配置
|
|
|
|
**2号机 systemd service**:
|
|
```ini
|
|
# ~/.config/systemd/user/openclaw-gateway.service
|
|
|
|
[Unit]
|
|
Description=OpenClaw Gateway (守护者)
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
ExecStart=/usr/local/bin/openclaw gateway --port 18789
|
|
Environment="https_proxy=http://192.168.0.66:7890"
|
|
Environment="http_proxy=http://192.168.0.66:7890"
|
|
Environment="HTTPS_PROXY=http://192.168.0.66:7890"
|
|
Environment="HTTP_PROXY=http://192.168.0.66:7890"
|
|
Restart=on-failure
|
|
RestartSec=5
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
|
|
**应用服务配置**:
|
|
```bash
|
|
# 2号机上执行
|
|
systemctl --user daemon-reload
|
|
systemctl --user enable openclaw-gateway.service
|
|
systemctl --user start openclaw-gateway.service
|
|
|
|
# 验证
|
|
systemctl --user status openclaw-gateway.service
|
|
```
|
|
|
|
## 📋 配置文件
|
|
|
|
### 1号机配置 (主机/青龙)
|
|
|
|
```json
|
|
{
|
|
"models": {
|
|
"providers": {
|
|
"deepseek": {
|
|
"baseUrl": "https://api.deepseek.com/v1",
|
|
"apiKey": "sk-xxx",
|
|
"api": "openai-completions",
|
|
"models": [{"id": "deepseek-chat", "name": "DeepSeek"}]
|
|
},
|
|
"minimax": {
|
|
"baseUrl": "https://api.minimaxi.com/v1",
|
|
"apiKey": "sk-api-xxx",
|
|
"models": [
|
|
{"id": "minimax-m2.1"},
|
|
{"id": "embo-01"}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"agents": {
|
|
"defaults": {
|
|
"model": {
|
|
"primary": "minimax/minimax-m2.1"
|
|
}
|
|
}
|
|
},
|
|
"channels": {
|
|
"telegram": {
|
|
"enabled": true,
|
|
"botToken": "8529719199:AAGjLDflvMXAEdgrBTSBEczOoSMybLU4gcs"
|
|
}
|
|
},
|
|
"gateway": {
|
|
"port": 18789,
|
|
"auth": {
|
|
"token": "openclaw-simple-token"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### 2号机配置 (守护者)
|
|
|
|
```json
|
|
{
|
|
"models": {
|
|
"providers": {
|
|
"deepseek": {
|
|
"baseUrl": "https://api.deepseek.com/v1",
|
|
"apiKey": "sk-xxx",
|
|
"models": [{"id": "deepseek-chat", "name": "DeepSeek"}]
|
|
},
|
|
"minimax": {
|
|
"baseUrl": "https://api.minimaxi.com/v1",
|
|
"apiKey": "sk-api-xxx",
|
|
"models": [
|
|
{"id": "minimax-m2.1"},
|
|
{"id": "embo-01"}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"agents": {
|
|
"defaults": {
|
|
"model": {
|
|
"primary": "deepseek/deepseek-chat"
|
|
}
|
|
}
|
|
},
|
|
"channels": {
|
|
"telegram": {
|
|
"enabled": true,
|
|
"botToken": "8202664888:AAE0UyCFJJBLC8notdmT42XOJRBoWLJ6XOI"
|
|
}
|
|
},
|
|
"gateway": {
|
|
"port": 18789,
|
|
"auth": {
|
|
"token": "openclaw-guardian-token-2nd"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## 🔧 远程管理
|
|
|
|
### 常用命令
|
|
|
|
```bash
|
|
# 1号机状态
|
|
sshpass -p 'password' ssh root@192.168.0.31 "openclaw status"
|
|
|
|
# 2号机状态
|
|
sshpass -p '3efvVGY&' ssh root@192.168.0.32 "openclaw status"
|
|
|
|
# 2号机重启Gateway
|
|
sshpass -p '3efvVGY&' ssh root@192.168.0.32 "openclaw gateway restart"
|
|
|
|
# 2号机发送消息
|
|
sshpass -p '3efvVGY&' ssh root@192.168.0.32 "openclaw message send --channel telegram --target 5117446326 --message 'test'"
|
|
```
|
|
|
|
### 监控脚本
|
|
|
|
```bash
|
|
#!/bin/bash
|
|
# monitor-2nd-machine.sh
|
|
|
|
echo "=== 2号机 (守护者) 状态 ==="
|
|
echo "时间: $(date)"
|
|
echo ""
|
|
|
|
# 检查Gateway进程
|
|
echo "Gateway进程:"
|
|
sshpass -p '3efvVGY&' ssh root@192.168.0.32 "ps aux | grep openclaw | grep -v grep"
|
|
|
|
echo ""
|
|
echo "系统资源:"
|
|
sshpass -p '3efvVGY&' ssh root@192.168.0.32 "free -h"
|
|
|
|
echo ""
|
|
echo "最近错误:"
|
|
sshpass -p '3efvVGY&' ssh root@192.168.0.32 "journalctl --user -u openclaw-gateway.service --since '1 hour ago' --no-pager | grep -i error | tail -5"
|
|
```
|
|
|
|
## 📊 性能对比
|
|
|
|
| 指标 | 1号机 (青龙) | 2号机 (守护者) |
|
|
|------|-------------|---------------|
|
|
| **默认模型** | MiniMax-m2.1 | DeepSeek |
|
|
| **代理** | 预配置 | 需手动配置 |
|
|
| **Telegram** | 正常 | 正常 |
|
|
| **内存管理器** | 停用 | 待测试 |
|
|
| **状态** | 生产就绪 | 生产就绪 |
|
|
|
|
## ⚠️ 注意事项
|
|
|
|
### Token 冲突
|
|
- 每个实例必须使用**独立的 Telegram Bot Token**
|
|
- Gateway Token 也必须不同
|
|
|
|
### 代理配置
|
|
- systemd 服务**不会**自动继承环境变量
|
|
- 必须在 service 文件中显式配置
|
|
|
|
### 配置文件验证
|
|
- OpenClaw 使用严格 JSON Schema 验证
|
|
- 未知字段会导致启动失败
|
|
- 使用 `openclaw doctor --fix` 修复
|
|
|
|
## 🔄 同步策略
|
|
|
|
### 配置同步
|
|
```bash
|
|
# 从1号机同步配置到2号机
|
|
scp ~/.openclaw/openclaw.json root@192.168.0.32:/root/.openclaw/openclaw.json
|
|
|
|
# 注意: 同步后需要修改:
|
|
# - gateway.auth.token
|
|
# - channels.telegram.botToken
|
|
```
|
|
|
|
### 日志聚合
|
|
```bash
|
|
# SSH隧道访问2号机日志
|
|
ssh -L 18790:localhost:18789 root@192.168.0.32
|
|
|
|
# 然后本地查看
|
|
openclaw logs --follow --port 18790
|
|
```
|
|
|
|
---
|
|
|
|
*最后更新: 2026-02-03 21:40 GMT+8*
|
|
*维护者: 青龙 🐉*
|
|
*参考: 2号机部署完整记录 (memory/2026-02-03.md)*
|