这是一份 2026 年最新版、纯手动部署、超详细 的阿里云 ECS 部署 OpenClaw (原 Clawdbot) 教程。
这份教程不依赖任何“一键脚本”,而是带你一步步理解每一个命令的含义。适合希望完全掌控服务器环境、排查问题能力更强的开发者,或者需要定制化修改代码的高级用户。
📋 前置准备清单
在开始之前,请确保你手头有以下信息(建议开个记事本记下来):
阿里云 ECS 实例:
系统:Ubuntu 22.04 (推荐) 或 Alibaba Cloud Linux 3。
配置:建议 2核 4G 以上 (内存太小跑 Python 容易崩)。
网络:已分配公网 IP,且安全组已放行 SSH (22) 端口。
阿里云百炼 API Key:
去 百炼控制台 创建一个,格式为
sk-xxxxxxxx。机器人平台凭证:
钉钉:AppKey, AppSecret (来自钉钉开放平台)。
飞书:App ID, App Secret (来自飞书开放平台)。
终端工具:
Windows: PowerShell, CMD, 或 Xshell/PuTTY。
Mac/Linux: 自带 Terminal。
🚀 第一阶段:连接与基础环境搭建
1. 远程登录服务器
打开你的终端工具,输入以下命令(替换 <公网IP> 为你的实际 IP):
ssh root@<公网IP>
首次连接会提示
Are you sure you want to continue connecting?,输入yes回车。输入密码(输入时屏幕不显示字符),回车登录。
看到
root@iZ...:~#表示成功。
2. 更新系统软件源
为了防止安装旧版本软件导致报错,先更新源:
apt update && apt upgrade -y
(这一步可能需要几分钟,视网络情况而定)
3. 安装核心依赖
我们需要安装 Python3、包管理器 pip、代码管理工具 git 以及编译工具:
apt install -y python3 python3-pip python3-venv git curl wget build-essential
python3-venv: 用于创建虚拟环境,隔离项目依赖,防止弄坏系统 Python。build-essential: 某些 Python 库需要编译 C 扩展,必须安装。
4. 验证安装
python3 --version # 应显示 Python 3.10+ pip3 --version # 应显示 pip 版本 git --version # 应显示 git 版本
📥 第二阶段:获取代码与隔离环境
1. 创建项目目录
按照 Linux 规范,我们将应用放在 /opt 目录下:
mkdir -p /opt/openclaw cd /opt/openclaw
2. 克隆 OpenClaw 代码
从 GitHub 拉取最新代码(如果官方地址变更,请替换为最新地址):
git clone https://github.com/OpenClawTeam/openclaw.git .
注意末尾的
.代表克隆到当前目录,而不是新建一个子文件夹。如果速度慢,可以使用国内镜像源(如 Gitee,如果有)。
3. 创建 Python 虚拟环境 (关键步骤)
千万不要直接用系统自带的 pip 安装依赖! 必须创建虚拟环境:
python3 -m venv venv
这会创建一个名为 venv 的文件夹,里面包含独立的 Python 解释器和库。
4. 激活虚拟环境
source venv/bin/activate
成功标志:命令行最前面会出现
(venv)字样,如(venv) root@iZ...:/opt/openclaw#。注意:以后每次操作该项目前,都要运行这条命令激活环境。
5. 安装项目依赖
使用国内清华源加速下载,防止超时:
pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
观察输出,确保最后显示
Successfully installed ...。如果有红色报错,请截图记录。
⚙️ 第三阶段:配置文件深度定制
1. 初始化配置文件
查看目录下是否有 .env 文件:
ls -a
如果没有
.env,但有.env.example,则复制一份:cp .env.example .env
2. 编辑配置
使用 nano 编辑器打开文件:
nano .env
3. 填入关键参数
在编辑器中,找到并修改以下内容(不要删掉引号,不要多空格):
# ================= 大模型配置 ================= # 填入你的阿里云百炼 API Key DASHSCOPE_API_KEY=sk-你的真实Key在这里 # 选择模型,推荐 qwen-plus (性价比高) 或 qwen-turbo (便宜) MODEL_NAME=qwen-plus # ================= 钉钉机器人配置 (示例) ================= # 如果不用钉钉,这部分可以留空或注释掉 DINGTALK_APP_KEY=你的钉钉AppKey DINGTALK_APP_SECRET=你的钉钉AppSecret # DINGTALK_CLIENT_ID=... (如果有) # DINGTALK_CLIENT_SECRET=... (如果有) # ================= 飞书机器人配置 (示例) ================= # FEISHU_APP_ID=你的飞书AppID # FEISHU_APP_SECRET=你的飞书AppSecret # ================= 网络配置 (至关重要) ================= # 监听地址:必须填 0.0.0.0,否则外网无法访问 HOST=0.0.0.0 # 监听端口:默认 8080,如果被占用可改为 8081 等 PORT=8080 # ================= 日志配置 ================= LOG_LEVEL=INFO
保存:按
Ctrl + O-> 回车。退出:按
Ctrl + X。
🔒 第四阶段:配置 ECS 安全组 (防火墙)
这是新手最容易卡住的地方! 即使代码跑起来了,如果阿里云防火墙没开端口,外网也连不上。
保持终端不动,打开浏览器登录 阿里云 ECS 控制台。
找到你的实例,点击 实例 ID 进入详情页。
点击顶部 “安全组” 标签 -> 点击安全组 ID。
点击 “配置规则” -> “入方向” -> “手动添加”。
填写规则:
优先级: 1
协议类型: TCP
端口范围:
8080/8080(必须和你.env里的 PORT 一致)授权对象:
0.0.0.0/0(允许所有 IP 访问,生产环境可限制为钉钉/飞书的 IP 段)描述: OpenClaw Webhook
点击 保存。
🏃 第五阶段:手动试运行与调试
在设置为后台服务之前,我们先手动前台运行一次,以便直接看到报错信息。
确保你还在
/opt/openclaw目录且激活了venv(看到(venv)前缀)。运行启动脚本(脚本名可能是
main.py,app.py,bot.py,请用ls确认):python3 main.py
观察输出:
ModuleNotFoundError: 说明依赖没装全,重新运行pip install。Address already in use: 端口被占用,修改.env中的PORT。InvalidApiKey: 检查 Key 是否复制正确,有无空格。Connection refused: 检查代码里调用的外部服务是否通。✅ 成功:看到
Running on http://0.0.0.0:8080或Server started字样。❌ 失败:
如果运行成功,按 Ctrl + C 停止它,我们接下来要把它变成后台服务。
🛡️ 第六阶段:配置 Systemd 守护进程 (生产级)
为了让机器人 24 小时运行,且开机自启、崩溃自动重启,我们配置 systemd 服务。
1. 创建服务文件
nano /etc/systemd/system/openclaw.service
2. 粘贴配置内容
将以下内容粘贴进去(注意路径必须与你实际路径一致):
[Unit] Description=OpenClaw Bot Service After=network.target [Service] Type=simple User=root WorkingDirectory=/opt/openclaw # 关键点:必须使用虚拟环境中的 python 解释器 ExecStart=/opt/openclaw/venv/bin/python3 main.py Restart=always RestartSec=5 # 环境变量文件路径 EnvironmentFile=/opt/openclaw/.env [Install] WantedBy=multi-user.target
保存退出 (Ctrl+O, Enter, Ctrl+X)。
3. 启动并启用服务
依次执行以下命令:
# 1. 重载 systemd 配置 systemctl daemon-reload # 2. 启动服务 systemctl start openclaw # 3. 设置开机自启 systemctl enable openclaw # 4. 查看状态 (必须看到 active (running)) systemctl status openclaw
按 q 退出状态查看。
🧪 第七阶段:最终对接与验证
1. 获取公网 IP
在 ECS 控制台查看你的 公网 IP (例如 123.45.67.89)。
2. 配置机器人回调
钉钉/飞书开放平台 -> 事件订阅/回调配置。
回调地址:
http://123.45.67.89:8080/callback注意: IP 换你的,端口换你配置的,路径
/callback需根据 OpenClaw 实际路由确认(有的是/dingtalk,/webhook)。点击 保存/验证。
3. 实时日志监控 (调试神器)
如果回调失败或机器人不回话,用这个命令看实时日志:
journalctl -u openclaw -f
看到
Received message,Sending response等日志说明流程正常。看到
Error,Exception则根据报错修复代码或配置。
🆘 常见问题急救手册
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| Systemd 启动失败 | 路径错误或权限不足 | 运行 journalctl -u openclaw -n 50 查看详细报错;检查 ExecStart 路径是否指向 venv/bin/python。 |
| 回调一直超时 | 安全组未开或 IP 变动 | 1. 检查安全组 8080 端口。 2. 如果是按量付费实例,重启后 IP 可能变,建议绑定 弹性公网 IP (EIP)。 |
| 内存溢出 (OOM) | 实例内存太小 | 运行 free -h 查看。如果频繁被杀,考虑升级 ECS 到 4G 或 8G 内存,或增加 Swap 交换分区。 |
| 依赖安装报错 | 缺少系统库 | 根据报错安装对应的 libxxx-dev 包,或确保安装了 build-essential。 |
| 时间不对 | 服务器时区错误 | 运行 timedatectl set-timezone Asia/Shanghai 修正时区,避免日志时间混乱。 |
💡 2026 年进阶建议
域名 + HTTPS:为了安全,建议买个域名解析到 ECS,用 Nginx 反向代理 + Certbot 申请免费 SSL 证书,将回调地址升级为
https://。Docker 化:如果团队多人维护,建议编写
Dockerfile和docker-compose.yml,实现“一次构建,到处运行”,避免环境差异问题。监控告警:配置阿里云云监控,当 CPU > 80% 或服务宕机时发送短信通知。
恭喜你!通过这套手动流程,你不仅部署了一个机器人,还掌握了 Linux 服务器运维的核心技能。