1. 为什么大家都在阿里云上跑 OpenClaw:先搞清楚这玩意解决什么问题
OpenClaw 这个名字最近在 Agent 开发圈子里出现频率很高。简单说,它是一个把你的大模型能力"接出去"的中间层,让模型能调用工具、操作电脑、读写文件、甚至驱动微信或飞书机器人。很多人在本地 Mac 或 Windows 上玩过 OpenClaw,但一旦涉及到长期运行、多用户使用、或者需要接入公网服务,本地方案就会暴露出一堆问题:电脑不能关机、IP 会变、性能不稳定、遇到复杂的网络环境还要折腾端口转发。
于是"阿里云 + OpenClaw"这个组合就成了很自然的选项。阿里云的核心优势在于:国内访问速度快、ECS 产品线成熟、按量付费灵活、并且提供了完善的镜像站和安全组策略,适合跑这种需要长期在线的 Agent 服务。我见过不少团队把 OpenClaw 当作私人 AI 助理的中枢,部署在阿里云 ECS 上,配合企业微信或飞书机器人,实现文档问答、定时任务、甚至自动写小说这些玩法。
这篇文章不打算泛泛讲"云服务器是什么",而是直接围绕"在阿里云上快速部署 OpenClaw"这条主线,把环境准备、安装步骤、网络配置、踩坑记录、以及后续的优化方案全部拆开讲。无论是刚接触云服务器的初学者,还是已经在本地跑过 OpenClaw 想迁移上云的老手,都能从中找到可直接照抄的部分。
先说结论:在阿里云部署 OpenClaw 并不复杂,难点通常集中在三块——第一,ECS 实例规格和系统镜像怎么选;第二,Python 环境、依赖包和模型配置怎么一次弄对;第三,安全组、防火墙、域名备案这些网络层面的东西怎么配合。下面逐一展开。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 部署前的选型思路:ECS 规格、系统镜像和网络方案怎么定
2.1 实例规格:OpenClaw 对资源的需求其实比你想象的低
很多人一听到"部署 AI 相关服务",第一反应就是上 GPU 实例。但 OpenClaw 本身不是一个推理引擎,它是编排层——真正的大模型推理可以放在云端 API(比如 DeepSeek、通义千问、Ollama 远程服务)或者本地 GPU 上。如果你打算调用 API 而不是本地跑模型,一台 2 核 4G 的 ECS 就完全够用。
我实测下来,OpenClaw 主进程常驻内存大约在 500MB 到 1GB 之间,跟跑一个 Node.js 服务差不多。但要注意,如果你在 OpenClaw 里启用了浏览器自动化(比如让 Agent 操作网页),Chromium 实例会额外吃掉 300MB 到 600MB 内存,所以建议最少选择 2 核 4G,预算允许的话直接上 2 核 8G,留出余量。
补充一个实际经验:虽然 2 核 4G 能跑,但如果同时接入微信机器人和飞书机器人,并且开启多个会话,内存压力会明显上升。我自己的生产环境用的是 2 核 8G,运行半个月没出现 OOM。
以下是我根据实际使用情况整理的规格对比:
| 使用场景 | 建议规格 | 预估月成本(包年包月) | 说明 |
|---|---|---|---|
| 个人实验/学习 | 2核4G | 约 70-100 元 | 跑轻量 Agent,偶尔调试 |
| 正式接入微信/飞书机器人 | 2核8G | 约 130-180 元 | 满足多会话、浏览器自动化 |
| 需要本地跑小型模型 | 4核16G + GPU | 价格较高 | 建议优先尝试 API 方式 |
提示:刚开始不建议买高配,先用按量付费的方式跑几天,观察内存和 CPU 占用曲线,再决定要不要升级。ECS 支持升配,数据不会丢。
2.2 系统镜像:Ubuntu 22.04 是最省心的选择
OpenClaw 官方文档推荐使用 Linux 系统,我自己在阿里云上试过 CentOS 7.9 和 Ubuntu 22.04,最终稳定使用 Ubuntu 22.04。原因有三点:
第一,OpenClaw 的依赖安装脚本对 apt 包管理器的支持最完善,很多系统库(比如 libnss3、libatk)在 Ubuntu 的软件源里都有预编译版本,CentOS 上则需要手动下载 RPM 包,非常痛苦。
第二,Ubuntu 22.04 的 Python 3.10 版本与 OpenClaw 的依赖兼容性最好。CentOS 默认的 Python 版本较低,需要折腾 pyenv 或手动编译,浪费时间。
第三,阿里云公共镜像里的 Ubuntu 22.04 已经预装了 cloud-init,能自动完成一些初始化配置,对新手友好。
在选择镜像时,注意地域的选择。如果你主要服务国内用户,选华北 2(北京)、华东 1(杭州)或华东 2(上海)这些地域;如果你的 Agent 需要访问一些境外服务,可能要考虑网络延迟问题,但这属于另一层话题,不在本文展开。
2.3 网络方案:公网 IP、安全组和端口规划
OpenClaw 部署在云服务器上,通常需要被外部访问,最常见的是通过 WebSocket 或 HTTP 与微信/飞书服务器通信。这就涉及到两个网络层面的配置:
第一个是安全组规则。阿里云 ECS 默认的安全组只开放 22 端口(SSH),你需要手动添加规则放行所需端口。OpenClaw 的 Control UI 默认运行在 3000 端口,如果要用浏览器访问管理界面,记得在安全组里加一条"允许 TCP 3000 端口"的入方向规则,来源建议设置为你的公网 IP 或固定 IP 段,不要直接填 0.0.0.0/0,避免管理界面暴露在公网上被扫描。
第二个是公网 IP 绑定。购买 ECS 时可以选择分配公网 IP,也可以先不分配,后续通过 EIP(弹性公网 IP)绑定。对于 OpenClaw 这种需要稳定回调地址的服务,我建议直接绑定一个 EIP,防止服务器重启后公网 IP 变化导致微信/飞书后台配置失效。
注意:如果使用微信机器人,微信后台的回调 URL 必须是公网可访问的 HTTPS 地址。Cloudflare 隧道或 Nginx + Let's Encrypt 证书是常用的解决方案,后面会细讲。
3. 从零开始的正式部署步骤:从 SSH 登录到 OpenClaw 首次启动
3.1 环境初始化:更新系统、创建专用用户、安装基础工具
拿到一台全新的 Ubuntu ECS 后,建议按以下顺序初始化环境,避免后续遇到权限混乱的问题。
先用 SSH 登录服务器:
bash复制ssh root@你的公网IP
然后更新系统包列表:
bash复制apt update && apt upgrade -y
接着创建一个专用用户,避免直接在 root 下运行 OpenClaw。这个习惯很重要,因为 OpenClaw 里需要运行浏览器自动化(Playwright),如果以 root 身份运行浏览器,Chromium 会提示"Running as root without --no-sandbox is not supported",而且一旦出安全问题,root 权限意味着整个服务器都暴露了。
bash复制adduser openclaw
usermod -aG sudo openclaw
su - openclaw
安装基础工具链:
bash复制sudo apt install -y curl wget git build-essential
3.2 安装 Node.js 和 Python 环境
OpenClaw 的依赖分为两部分:Node.js 用于运行 Control UI 和核心服务,Python 用于执行 Agent 逻辑。我建议用 nvm 安装 Node.js,用 venv 管理 Python 环境,这样的组合最干净,不会污染系统 Python。
安装 nvm:
bash复制curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install 20
nvm use 20
安装 Python 3.10 和 venv:
bash复制sudo apt install -y python3.10 python3.10-venv python3-pip
提示:阿里云 ECS 的 Ubuntu 22.04 软件源里默认就有 Python 3.10,不需要额外添加 PPA。如果你用的是 Ubuntu 20.04,需要先 apt install software-properties-common,再添加 deadsnakes PPA。
3.3 拉取 OpenClaw 源码并安装依赖
OpenClaw 的官方仓库在 GitHub 上,国内服务器直接拉取 GitHub 经常遇到速度慢或连接超时的问题。有两个解决办法:
第一个办法是使用阿里云的镜像加速服务。在执行 git clone 时,可以把仓库地址替换为镜像地址,例如使用 ghproxy 这类代理加速。但要注意,这些第三方代理服务的稳定性和安全性参差不齐,建议在克隆完成后核对一下文件完整性。
第二个办法是直接将 GitHub 的 release 包下载到本地再上传到服务器,或者使用 Gitee 的镜像仓库。我个人的做法是:在本地电脑上先 clone 好代码,再用 scp 上传到服务器,这样最稳。
bash复制git clone https://github.com/你的仓库地址/OpenClaw.git
cd OpenClaw
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
npm install
依赖安装过程中,最常见的报错是 Playwright 安装 Chromium 失败,因为需要下载浏览器二进制文件。可以使用国内镜像:
bash复制PLAYWRIGHT_DOWNLOAD_HOST=https://npmmirror.com/mirrors/playwright npx playwright install chromium
3.4 配置模型接入:以 DeepSeek API 为例
OpenClaw 本身不包含大模型,需要配置一个可用的模型后端。这里以 DeepSeek API 为例,因为 DeepSeek 的模型在中文场景下表现稳定且价格较低,是很多人的首选。
在 OpenClaw 的配置文件中(通常是 config.json 或 .env),需要设置以下核心参数:
bash复制MODEL_PROVIDER=deepseek
DEEPSEEK_API_KEY=你的密钥
MODEL_NAME=deepseek-chat
如果使用阿里云百炼平台(DashScope)的模型服务,配置方式类似,只需要把 provider 换成 dashscope,填入阿里云百炼的 API Key。
注意:OpenClaw 的热门搜索词中有 "openclaw zero token 安装后 agent failed before reply: unknown model: deepsee",这个报错我在实际部署中也遇到过。原因是模型名称填写不完整,DeepSeek 的模型名必须是
deepseek-chat或deepseek-reasoner,不能简写成deepseek。配置里少一个字母就会报 unknown model。
3.5 启动 OpenClaw 并验证基本功能
安装完依赖后,启动前建议先跑一次健康检查:
bash复制python3 main.py --check
这个命令会检查所有依赖项、配置项和网络连通性。如果一切正常,再启动服务:
bash复制nohup python3 main.py > openclaw.log 2>&1 &
首次启动会自动创建数据目录和默认配置。此时打开 Control UI:
code复制http://你的服务器IP:3000
如果页面能正常打开,并且模型对话能回复,说明核心部署已经成功。接下来要做的,就是让服务在后台稳定运行,并接入实际的外部通道(微信、飞书等)。
4. 最容易出问题的地方:网络回调、HTTPS 和消息通道接入
4.1 微信机器人的核心难点:回调地址必须是 HTTPS
OpenClaw 接入微信,本质上是一个微信机器人框架,它需要通过微信的 Web 协议或企业微信的 API 与微信服务器通信。企业微信 API 要求回调 URL 必须是 HTTPS,且端口固定为 80 或 443。
这就意味着你的服务器上必须有一个可用的 HTTPS 服务。常见做法是部署 Nginx 作为反向代理,然后使用 Let's Encrypt 免费证书。阿里云也提供免费的 SSL 证书,搜索词里"阿里云SSL证书免费续期"指的就是这个,每年可以免费申请,但需要手动续期。
Nginx 反向代理的核心配置如下:
nginx复制server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
另外,在阿里云安全组里,需要放行 443 端口。如果你没有自己的域名,可以先买个便宜的域名,或者在本地开发阶段使用临时 HTTPS 隧道工具(这里不展开,仅提示思路)。
4.2 飞书机器人:协议简单,但需要处理好事件订阅
相比微信,飞书机器人接入 OpenClaw 会顺畅很多。飞书的开放平台提供事件订阅机制,只要在飞书开放后台配置好请求地址(HTTPS),飞书服务器会把消息事件推送到你的服务器上。
OpenClaw 里已经内置了飞书接入模块,你只需在配置文件中填好 App ID、App Secret 和验证 Token。这里有一个常见问题:如果你的服务器需要访问飞书 API,但 ECS 在境内,访问飞书 API 通常是没问题的;但如果使用境外服务器,可能会遇到飞书 API 被限制的情况。
4.3 多通道并存的端口与进程规划
如果一台服务器上既要跑微信机器人,又要跑飞书机器人,还要保留 Control UI,建议对端口和进程做明确规划:
| 服务 | 默认端口 | 建议监听地址 |
|---|---|---|
| OpenClaw Control UI | 3000 | 127.0.0.1,通过 Nginx 对外 |
| 微信机器人回调 | 443 | 公网,域名绑定 |
| 飞书机器人回调 | 443 | 公网,域名绑定 |
注意:不要让多个服务同时监听同一个公网端口,否则会冲突。通过 Nginx 的路径转发(如 /wechat、/feishu)可以让一个 443 端口承载所有回调。
5. 部署后必须调优的几件事:开机自启、日志监控和模型参数调整
5.1 使用 systemd 让 OpenClaw 开机自启
直接 nohup 启动的进程在服务器重启后会消失,所以需要注册一个 systemd 服务。创建一个服务文件:
bash复制sudo vim /etc/systemd/system/openclaw.service
内容如下:
ini复制[Unit]
Description=OpenClaw Agent Service
After=network.target
[Service]
User=openclaw
WorkingDirectory=/home/openclaw/OpenClaw
ExecStart=/home/openclaw/OpenClaw/venv/bin/python3 /home/openclaw/OpenClaw/main.py
Restart=always
RestartSec=10
Environment=PATH=/home/openclaw/OpenClaw/venv/bin:/usr/bin:/bin
[Install]
WantedBy=multi-user.target
然后执行:
bash复制sudo systemctl daemon-reload
sudo systemctl enable openclaw
sudo systemctl start openclaw
注意:Restart=always 这个参数很重要,因为 OpenClaw 偶尔会因内存不足或插件异常退出,systemd 能自动拉起来。
5.2 日志轮转和告警:别等出问题了才去看日志
OpenClaw 运行日志如果一直写入同一个文件,时间长了会占用大量磁盘空间。建议配置 logrotate:
bash复制sudo vim /etc/logrotate.d/openclaw
写入:
bash复制/home/openclaw/OpenClaw/openclaw.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
此外,阿里云 ECS 控制台自带"云监控"功能,可以监控 CPU、内存、磁盘使用率,设置阈值告警。我个人的经验是:磁盘使用率告警设置 80% 比较合理,避免日志和依赖缓存把磁盘占满。
5.3 模型参数调整:让 Agent 更贴合你的使用场景
OpenClaw 的好玩之处在于它不只是简单对话,还能编排工具调用。你在配置模型时,可以调整 temperature、max_tokens 等参数。比如让 OpenClaw 写小说,temperature 可以调到 0.8 到 1.0,增加随机性和多样性;如果是做客服问答,temperature 调到 0.2 到 0.3,保证答案稳定准确。
在 OpenClaw 的配置文件中,每个 Agent 都可以单独设置参数。以小说创作为例:
json复制{
"agent_id": "novelist",
"model": {
"provider": "deepseek",
"name": "deepseek-chat",
"temperature": 0.9,
"max_tokens": 4096
}
}
5.4 OpenClaw 接入微信后如何写一个自定义 Skill
既然做的是 Agent 部署,肯定会遇到需要自定义能力的场景。OpenClaw 支持通过 Skill 机制扩展。比如你想让 Agent 每天定时查询天气,就需要写一个 Skill:
bash复制cd OpenClaw/skills
mkdir weather
cd weather
touch skill.py skill.yaml
skill.yaml 里描述这个 Skill 的元信息,skill.py 里实现具体逻辑。写完后,在 OpenClaw 的配置里声明这个 Skill,Agent 就能在对话中自动调用它。关键在于,Skill 的函数要返回一个字符串结果给 Agent,Agent 再把它加工成自然语言回复。
6. 高频踩坑记录:根据实际部署经验整理的问题清单
6.1 Control UI 无法启动(openclaw control ui did not start)
这个搜索词很常见。遇到这个问题时,第一步不要看 Python 日志,先看 Node.js 进程是否在运行。很多情况下是 3000 端口已经被占用,或者 Node.js 依赖没有装全。排查命令:
bash复制lsof -i :3000
ps aux | grep node
如果确认依赖缺失,重新运行 npm install,注意 npm install 的目录必须是 OpenClaw 源码根目录。
6.2 Agent failed before reply: unknown model
"unknown model"报错的根因,通常是模型名称错误或模型供应商 API 没有正确识别。检查配置中的 model name 是否与官方 API 文档完全一致。以 DeepSeek 为例:对话模型叫 deepseek-chat,推理模型叫 deepseek-reasoner,大小写和下划线都不能出错。
6.3 OpenClaw 接入微信后无法发送图片
很多用户在 OpenClaw 里让 Agent 生成图片,然后通过微信发送,发现发送失败。绝大多数情况是微信机器人框架对图片格式和大小有严格限制。把生成的图片转换为 JPEG 格式并压缩到 500KB 以下,通常能解决。
6.4 Docker 部署与源码部署的选择
搜索词里还有 "mac mini使用docker本地部署openclaw"、"docker安装部署"这类关键词。Docker 方式部署的最大优势是环境隔离和注册方便,但如果你要深度定制 Skill 或调试源码,docker 的封装会带来额外障碍。我的建议是:初期使用源码部署,熟悉了 OpenClaw 的目录结构和运行机制后,再用 Docker 做生产环境的封装。
6.5 内置 Chrome 自动化时中文输入法问题
如果让 OpenClaw 自动操作网页并填写中文表单,在 Linux 服务器上可能会遇到中文输入法无法工作的问题。这是因为服务器没有图形界面和输入法框架。你只能依靠 Playwright 直接向输入框填充文本,而不是模拟真实的键盘按键。在编写自动化 Skill 时,用 fill() 而不是 type() 避免中文输入错误。
7. 把 OpenClaw 变成长期稳定服务的最后一步:备份、安全与成本优化
7.1 数据备份:主要是配置目录和 Skill 目录
OpenClaw 的数据库存储了会话历史、Agent 配置、Skill 定义。默认数据目录在 OpenClaw 安装目录下的 data 文件夹。建议写一个简单的定时备份脚本,用 crontab 每天打包:
bash复制crontab -e
0 3 * * * tar -czf /home/openclaw/backups/openclaw_$(date +\%Y\%m\%d).tar.gz -C /home/openclaw OpenClaw/data
同时,阿里云的 OSS 可以设置生命周期规则,把超过 30 天的备份自动清理,避免备份文件堆积。
7.2 安全加固:不暴露管理端口、定期更新依赖
OpenClaw 的 Control UI 是 Web 管理界面,如果直接暴露在公网,很容易被扫描攻击。建议用 Nginx 加 Basic Auth 或者 IP 白名单,把管理界面限制在你的家庭/办公 IP 段内。
另外,Python 和 Node.js 的依赖库会不定期发布安全补丁,建议每月执行一次:
bash复制pip list --outdated
npm outdated
在更新前先备份数据目录,防止依赖升级导致配置格式不兼容。
7.3 成本优化:从包年包月到按量付费再到抢占式实例
很多人部署 OpenClaw 只是为了个人使用,不需要 7x24 小时运行。这种情况下可以不用包年包月,而是每天在固定时间段启动 ECS 实例,其他时间释放或停机不收费(注意:按量付费停机不收取计算资源费用,但磁盘和公网 IP 可能会有少量费用)。甚至可以考虑抢占式实例,价格通常是按量付费的一到两折,但要接受随时被释放的风险。
我个人的实践是:个人测试环境用按量付费,每天定时开启 4 小时;线上稳定运行的项目才用包年包月。这样每月的成本能控制在 50 元以内。
7.4 域名与备案:如果要长期对外服务,域名备案逃不掉
如果你的 OpenClaw 服务和微信机器人需要长期绑定一个域名,并且服务器在境内,那么域名备案是绕不开的环节。阿里云控制台可以直接在线提交备案,整个过程大约 1 到 2 周。建议在部署初期就把域名和备案申请提交上去,等流程走完,你的服务也调试得差不多了。
如果暂时不打算备案,可以考虑把机器人服务运行在境外地域的 ECS 上,但代价是境内访问延迟增加,而且接飞书和一些国内服务的稳定性可能下降。这是一个权衡问题,没有标准答案,看你更在意哪一头。
我在这套部署方案上踩过的坑不少。最感慨的一点是:OpenClaw 本身安装并不难,难的是它和外部生态的衔接——微信回调、HTTPS 证书、安全组、进程守护、日志监控,这些"边角料"才是最消耗时间的。把这些基础设施理顺了,OpenClaw 就像一台听话的小主机,安安静静地替你处理那些重复性的信息工作。如果你正在准备把自己的 Agent 迁移到云上,希望这份记录能帮你少走几段弯路。
