阿里云ECS 手动部署 OpenClaw 超详细教程(2026最新版)

阿里云服务器

这是一份 2026 年最新版纯手动部署超详细 的阿里云 ECS 部署 OpenClaw (原 Clawdbot) 教程。

这份教程不依赖任何“一键脚本”,而是带你一步步理解每一个命令的含义。适合希望完全掌控服务器环境排查问题能力更强的开发者,或者需要定制化修改代码的高级用户。


📋 前置准备清单

在开始之前,请确保你手头有以下信息(建议开个记事本记下来):

  1. 阿里云 ECS 实例

    • 系统:Ubuntu 22.04 (推荐) 或 Alibaba Cloud Linux 3。

    • 配置:建议 2核 4G 以上 (内存太小跑 Python 容易崩)。

    • 网络:已分配公网 IP,且安全组已放行 SSH (22) 端口。

  2. 阿里云百炼 API Key

  3. 机器人平台凭证

    • 钉钉:AppKey, AppSecret (来自钉钉开放平台)。

    • 飞书:App ID, App Secret (来自飞书开放平台)。

  4. 终端工具

    • 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 安全组 (防火墙)

这是新手最容易卡住的地方! 即使代码跑起来了,如果阿里云防火墙没开端口,外网也连不上。

  1. 保持终端不动,打开浏览器登录 阿里云 ECS 控制台

  2. 找到你的实例,点击 实例 ID 进入详情页。

  3. 点击顶部 “安全组” 标签 -> 点击安全组 ID。

  4. 点击 “配置规则” -> “入方向” -> “手动添加”

  5. 填写规则:

    • 优先级: 1

    • 协议类型: TCP

    • 端口范围: 8080/8080 (必须和你 .env 里的 PORT 一致)

    • 授权对象: 0.0.0.0/0 (允许所有 IP 访问,生产环境可限制为钉钉/飞书的 IP 段)

    • 描述: OpenClaw Webhook

  6. 点击 保存


🏃 第五阶段:手动试运行与调试

在设置为后台服务之前,我们先手动前台运行一次,以便直接看到报错信息。

  1. 确保你还在 /opt/openclaw 目录且激活了 venv (看到 (venv) 前缀)。

  2. 运行启动脚本(脚本名可能是 main.py, app.py, bot.py,请用 ls 确认):

    python3 main.py
  3. 观察输出

    • ModuleNotFoundError: 说明依赖没装全,重新运行 pip install

    • Address already in use: 端口被占用,修改 .env 中的 PORT

    • InvalidApiKey: 检查 Key 是否复制正确,有无空格。

    • Connection refused: 检查代码里调用的外部服务是否通。

    • 成功:看到 Running on http://0.0.0.0:8080Server 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 年进阶建议

  1. 域名 + HTTPS:为了安全,建议买个域名解析到 ECS,用 Nginx 反向代理 + Certbot 申请免费 SSL 证书,将回调地址升级为 https://

  2. Docker 化:如果团队多人维护,建议编写 Dockerfiledocker-compose.yml,实现“一次构建,到处运行”,避免环境差异问题。

  3. 监控告警:配置阿里云云监控,当 CPU > 80% 或服务宕机时发送短信通知。

恭喜你!通过这套手动流程,你不仅部署了一个机器人,还掌握了 Linux 服务器运维的核心技能。