其实现在好多云厂商都出了 OpenClaw 的一键镜像,点几下就能跑起来。但我手里正好有台阿里云的虚拟机闲着也是闲着,打算在自己服务器上搭一下。而且我也不想让 AI 助手一直挂在本地的电脑上,占资源也不安全。至于大模型,我选了阿里云百炼,新用户还能领几千万的免费额度,对我这种自己玩玩的来说,够用一阵子。
1. 环境准备
1.1 安装Docker和Docker Compose
bash
# 安装Docker
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker
# 安装Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
1.2 配置Docker镜像加速器(可选,国内推荐)
bash
sudo cat > /etc/docker/daemon.json << 'EOF'
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
1.3 开放阿里云安全组端口
登录阿里云控制台,进入ECS实例的安全组,添加入方向规则:
-
端口:
28789 //这个端口默认是18789,因为我之前部署过,所以换个新端口 -
协议:
TCP -
授权对象:
0.0.0.0/0(或你的本地IP)
2. 部署OpenClaw
2.1 创建项目目录
进入你习惯的目录作为根目录
bash
mkdir ~/openclaw && cd ~/openclaw
2.2 编写docker-compose.yml
version: '3.8'
services:
openclaw:
image: ghcr.io/openclaw/openclaw:latest
container_name: openclaw
ports:
- "28789:18789"
volumes:
- ./openclaw-data:/home/node/.openclaw
user: "1000:1000"
restart: unless-stopped
2.3 创建配置目录并设置权限
bash
mkdir -p openclaw-data
sudo chown -R 1000:1000 openclaw-data
2.4 编写openclaw.json配置文件
在openclaw-data/目录下创建openclaw.json:
bash
cat > openclaw-data/openclaw.json << 'EOF'
{
"gateway": {
"bind": "lan",
"port": 18789,
"mode": "local",
"auth": {
"mode": "token",
"token": "your-strong-token-here"
},
"controlUi": {
"allowedOrigins": ["http://你的服务器公网IP:28789"],
"dangerouslyDisableDeviceAuth": true
}
},
"models": {
"mode": "merge",
"providers": {
"aliyun_bailian": {
"api": "openai-completions",
"baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"apiKey": "sk-你的阿里云百炼API-KEY",
"models": [
{ "id": "qwen-max", "name": "通义千问 Max" },
{ "id": "qwen-plus", "name": "通义千问 Plus" }
]
}
}
},
"agents": {
"defaults": {
"model": "aliyun_bailian/qwen-max",
"models": {
"aliyun_bailian/qwen-max": {},
"aliyun_bailian/qwen-plus": {}
}
}
}
}
EOF
重要替换:
将
your-strong-token-here改为你自己的强密码。将
你的服务器公网IP替换为阿里云ECS的公网IP。将
sk-你的阿里云百炼API-KEY替换为你在阿里云百炼控制台获取的真实API Key。
2.5 启动服务
bash
docker compose up -d
2.6 查看日志确认启动成功
bash
docker logs openclaw --tail 50
出现类似[gateway] ready的日志即表示成功。
3. 访问与使用
3.1 Web界面访问
浏览器打开:http://你的服务器公网IP:28789
系统会提示输入Token,输入你在openclaw.json中设置的token值。
3.2 选择模型
登录后,在聊天界面的模型下拉菜单中,选择aliyun_bailian/qwen-max或aliyun_bailian/qwen-plus,即可开始对话。
3.3 验证模型调用
发送消息,查看结果。

4. 常见问题解决
4.1 访问时提示"origin not allowed"
现象 :浏览器访问时显示origin not allowed,WebSocket连接被拒绝。
解决方法:
-
确保
openclaw.json中gateway.controlUi.allowedOrigins包含了你的完整访问地址(例如["http://123.456.789.0:28789"])。 -
同时设置
"dangerouslyDisableDeviceAuth": true(测试环境可用,生产环境建议配置HTTPS)。 -
修改后重启容器:
docker compose restart。
4.2 模型调用失败,提示"Unknown model"
现象 :日志中出现Unknown model: xxx。
解决方法:
-
检查
openclaw.json中models.providers里的models数组是否包含了你尝试调用的模型ID。 -
检查
agents.defaults.model和agents.defaults.models中的模型ID是否与providers中的ID完全一致(注意格式为provider_id/model_id)。 -
如果已有旧的agent配置,可删除
openclaw-data/agents目录后重启容器,让系统重新生成。
5. 更新OpenClaw
bash
docker compose pull
docker compose up -d
数据会保留在openclaw-data目录中,配置不受影响。
通过以上步骤,你可以在阿里云CentOS上成功部署OpenClaw,并接入阿里云百炼模型,通过Web界面进行对话。所有配置均持久化,便于后续维护和升级。