如果你最近在折腾AI助理,应该没少看到OpenClaw这个名字。作为一个开源的Agent平台,它能让大模型真正“动手干活”,把对话、记事、写文章、查资料这些事串成一条流水线,跑在完全属于你自己的服务器上。我一开始以为在阿里云上搭建OpenClaw会很折腾,结果实测下来,选对路径的话,8分钟真的能把服务拉起来。这篇教程就按我实际操作的顺序来写,适合纯萌新:每一步都不跳,命令直接复制,遇到报错按着排查就能过。
我会把这篇分成几个模块:先讲清楚OpenClaw和云服务器的关系,再进入购买ECS、配置安全组、SSH登录、正式部署、模型接入、实际使用、故障排查,最后聊一下Skill扩展和本地模型接入。整个流程是我自己在阿里云上反复重装系统试出来的,可以放心跟着走。
1. 先弄明白:OpenClaw是什么,为什么云服务器是它的最佳落点
1.1 它能干的事和它不擅长的事
OpenClaw本质上是一个Agent Runtime,你可以把它理解成“给大模型装上了手和脚”。普通聊天工具里的大模型只能给你文字回复,但OpenClaw可以在对话过程中去调用工具、读写文件、执行脚本、请求外部API,然后基于结果继续和你对话。比如你可以对它说:“帮我翻一下服务器上最近三天的日志文件,把报错行整理成表格”,它会自己去翻文件、筛行、归类,最后把表格给你。
它在内容创作场景里也相当能打。很多人在拿它写小说,你给一个人物设定和世界观框架,它能按设定连续写下去,而不是像普通对话那样动不动就跑偏。也有人拿它做知识库问答、做个人日程助理、甚至做自动化工作流。简单说,它是一个可以按你需求不断加能力的底座。
但它不是万能的。OpenClaw本身不包含大模型,它只是个调度者,接什么模型、模型好不好用,完全取决于你后面填的配置。另外它也不会自动理解你的业务,你需要把任务描述清楚,或者写好对应的Skill(后面会讲到)。
1.2 本地电脑的坑:网络、断电、公网访问
很多新手会问:我拿自己的电脑跑不行吗?能跑,但有几个很现实的麻烦。
第一,公网访问。你想在外面用手机访问自己的OpenClaw,家里宽带没有固定公网IP,就得搞内网穿透,配置复杂不说,速度也不稳定。第二,断电断网。本地电脑一合盖、一断网,服务就没了,你不可能为了一个服务让电脑7乘24小时不关机。第三,环境问题。本地电脑上通常已经装了一堆Python、Node、Docker之类的东西,版本互相干扰是常有的事,一个依赖升级可能就把OpenClaw搞崩了。
云服务器就没有这些问题。它有一个固定的公网IP,随时能从任何地方访问;它24小时在线,不用担心断电;最重要的是它是干净环境,装坏了重装系统几分钟搞定,成本极低。
1.3 谁适合这篇教程,谁应该绕道
这篇教程适合的人:第一次接触OpenClaw、之前没怎么碰过Linux、想快速在云服务器上跑起来的新手。我会把每一步都拆得很细,包括购买配置建议、安全组端口、SSH登录、命令含义。
不适合的人:如果你已经对Linux和Docker很熟了,可以直接看官方文档,那里的信息永远最新;如果你完全不想碰命令行,那也可以等图形化面板更成熟一些再玩,现阶段OpenClaw还是离不开终端操作。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 买台阿里云ECS并完成基础网络配置
2.1 服务器规格怎么选:2核2G还是2核4G
先给结论:纯学习、跑个OpenClaw加DeepSeek API,2核2G能跑,但体验一般;预算允许就上2核4G,差别非常明显。
OpenClaw本身占用的内存不大,真正吃内存的是你同时跑多个Skill、长对话上下文、以及一些后台服务。2G内存的话,只开一个最简对话实例问题不大,但如果你一边挂着Web界面,一边让它在后台写小说,再开几个Skill,内存就可能打满。我在2G机器上遇到过Docker容器被系统杀掉的情况,原因就是OOM。
硬盘建议40GB起步,系统装完Ubuntu后剩余空间足够,日志和模型缓存不会一下把盘塞满。带宽选按量付费的5M起步,部署的时候要拉取镜像和依赖包,带宽太小会影响速度,后续日常使用流量不大。
地域选离你最近的城市就行。新用户通常有优惠活动,轻量应用服务器或ECS都行,我自己用的是ECS。
2.2 系统镜像和安全组放行的正确姿势
创建实例的时候,系统镜像选Ubuntu 22.04 LTS或24.04 LTS,这两个版本对Docker和Node的兼容性最稳,而且社区资料多,出问题搜得到答案。别选CentOS,虽然还能用,但很多工具的官方示例都是基于Debian系的,照着抄省心。
安全组是阿里云控制台里的网络访问控制,相当于云防火墙。默认只会放行22端口(SSH),其他端口全部拦截。你需要在安全组规则里手动添加入方向规则:
- 端口22:来源0.0.0.0/0,用于SSH登录。
- 端口3000:来源0.0.0.0/0,用于访问OpenClaw的Web界面。如果后面你改了服务端口,记得同步改这里。
- 端口443:如果你后面配置了域名和HTTPS,需要放行。
这里有一个几乎所有新手都会踩的坑:阿里云控制台的安全组放行了,但服务还是访问不了。原因通常是系统内部还有一层防火墙。Ubuntu默认其实没开ufw,但如果你自己启用了,就需要在系统里也放行一次。下面第三个章节会细说排查方法。
2.3 从SSH登录开始的三步验证
服务器创建好之后,拿到公网IP和root密码。在本地打开终端(Windows用PowerShell或直接装个Windows Terminal,Mac用自带终端),执行:
bash复制ssh root@你的服务器公网IP
第一次连接会提示确认指纹,输入yes回车,然后输入密码。如果密码输入正确却连不上,先检查安全组里22端口是否放行,再看实例是否处于运行中。
登录成功后会看到类似 root@xxxxxx:~# 的命令行提示符。先确认一下系统版本和网络:
bash复制cat /etc/os-release
ping -c 4 mirrors.aliyun.com
能ping通说明网络正常。顺便提一下,阿里云ECS默认的apt源就是内网镜像源,速度非常快,不需要手动换源。如果你是自己装的非阿里云镜像的Linux,才需要考虑配置阿里云mirror源。
3. 8分钟部署实操:从空白服务器到OpenClaw跑起来
3.1 依赖安装与安装方式的选择
登录到服务器后,先做一个快速的系统更新,顺手把curl装上:
bash复制apt update && apt upgrade -y
apt install -y curl git
这里说一下,8分钟的目标从这一步开始计时。apt update一般十几秒能完成,如果慢,说明你源有问题。
OpenClaw官方目前提供两条安装路线:Docker方式和Node.js直接安装方式。我的建议是萌新优先用Docker,因为环境隔离彻底,以后卸载只要删除容器和镜像就行,不会在系统里留下一堆乱七八糟的依赖。Node方式启动速度更快、资源占用略低,适合后续进阶或者跑在性能比较弱的机器上。
无论选哪种,安装命令都以官方仓库README里的为准。OpenClaw迭代速度很快,命令行和安装方式随时可能更新,我在这里给你演示的是当前稳定可用的流程。项目更新是好事,但教程里的命令可能过期,这是所有快速发展的开源项目的通病。
3.2 Docker部署的完整命令
在没有Docker的Ubuntu上,用官方脚本安装Docker最快:
bash复制curl -fsSL https://get.docker.com | bash
systemctl enable --now docker
这个脚本会帮你装好Docker Engine、CLI和containerd,然后启动服务。装完跑一下 docker version,能看到Client和Server两段信息就说明正常。
接下来拉取OpenClaw镜像并启动容器。需要注意,镜像名和标签要以官方文档为准,下面我用的是示意:
bash复制docker run -d \
--name openclaw \
--restart unless-stopped \
-p 3000:3000 \
-v ~/.openclaw:/data \
openclaw/openclaw:latest
参数解释一下:
-d:后台运行。--restart unless-stopped:服务器重启后自动拉起容器,非常实用。-p 3000:3000:把容器的3000端口映射到宿主机的3000端口。-v ~/.openclaw:/data:数据持久化。OpenClaw的配置、会话记录、Skill文件都存在这个目录,以后重装容器也不会丢数据。
启动后看日志:
bash复制docker logs -f openclaw
看到类似“Server listening on 0.0.0.0:3000”的日志,就说明服务起来了。按Ctrl+C退出日志查看,然后在浏览器里访问 http://你的公网IP:3000。
3.3 首次登录和界面导航
打开Web界面后,第一次会让你创建一个管理员账号,或者通过配置文件设置访问令牌。不同版本的首次交互略有差异,按界面提示操作即可。
界面进入之后,核心区域就是一个对话输入框和会话列表。在输入框里随便打一句“你好”,如果系统提示模型没有配置,那就进入下一章,把模型接上。此时OpenClaw的骨架已经搭好了,剩下的就是注入灵魂——模型。
4. 把模型接进来:配置文件、API Key和那条“unknown model”报错
4.1 配置文件的位置与基本语法
OpenClaw的数据目录默认在 ~/.openclaw/ 下面。你需要关注的配置文件通常叫 config.json 或 settings.json,具体名字看启动日志里的提示。先进入目录看看:
bash复制ls -la ~/.openclaw/
配置文件是JSON格式,结构大概长这样:
json复制{
"providers": {
"deepseek": {
"baseUrl": "https://api.deepseek.com/v1",
"apiKey": "sk-你的密钥"
}
},
"models": {
"default": "deepseek/deepseek-chat"
}
}
这里有两个关键概念:providers 定义模型服务商,models 定义实际使用哪个模型。很多萌新只改providers,忘了注册models,于是报错。
4.2 DeepSeek模型接入的完整示例
国内用户最省事的方案就是接DeepSeek。去DeepSeek开放平台注册账号、充一点点钱、创建API Key,然后在配置里加进去。
我用的是DeepSeek的OpenAI兼容接口,baseUrl填 https://api.deepseek.com/v1。模型名填 deepseek-chat 或 deepseek-reasoner,前者适合日常对话和写作,后者适合复杂推理。如果你用的是其他兼容OpenAI协议的服务,格式一样,改baseUrl和模型名就行。
改完配置记得重启服务。Docker方式重启最方便:
bash复制docker restart openclaw
重启完成后,回到Web界面再发一句话,如果正常返回,说明模型已经打通。
4.3 “unknown model: deepseek”的真正解法
很多人在这一步会遇到一条让萌新崩溃的报错:agent failed before reply: unknown model: deepseek。我第一次见到时也懵了,明明是照着教程配的,怎么就unknown了。
这个报错的根因很简单:OpenClaw内部有一个模型注册列表,它只认识被注册过的模型ID。DeepSeek官方接口里模型名是 deepseek-chat 和 deepseek-reasoner,而不是 deepseek。如果你的配置里把模型名写成了 deepseek,它当然查不到。
另外还有一种情况:你用的是新版本OpenClaw,需要把模型名写成 provider/model 这样的完整格式,比如 deepseek/deepseek-chat。不同版本规格不完全一样,所以排查顺序是:
- 先确认模型ID是不是真实存在。去模型服务商官网查接口文档,DeepSeek就是
deepseek-chat。 - 再确认配置文件的providers里是否成功注册了对应的服务商。
- 重启服务,重新加载配置。
- 如果还报错,把
docker logs openclaw最后50行日志贴出来,多半能直接定位问题。
5. 从能用到好玩:日常对话、写小说、接入飞书和微信
5.1 用Web界面干活:对话与文档
模型接好之后,OpenClaw就是一个可以日常使用的AI助理了。你可以直接在对话框里问问题、让它写邮件、让它总结一篇文章。它和普通聊天机器人的区别在于,它可以把任务拆解成多个步骤,并且中途调用工具。
打个比方,你让它“把网上下载的这本小说前五章改成剧本格式”,它会先尝试下载文件,再读取内容,然后按你要求的格式重写。你不需要手动把文本复制粘贴进去,这是Agent类工具最爽的地方。
界面里的会话历史会自动保存,重启服务也不会丢。如果后续你配置了多个模型,可以在界面上切换,甚至同一个对话里用一个模型做规划、另一个模型做输出,这也是OpenClaw比较灵活的地方。
5.2 写小说的模型搭配和参数心得
写小说是OpenClaw目前社区里很火的使用方向。我自己试过几轮,分享一点配置心得。
如果你是让OpenClaw从零开始写一个完整故事,建议用两步走:先用 deepseek-reasoner 做故事大纲和人物设定,因为它推理能力强,能帮你把逻辑理顺;再用 deepseek-chat 写正文,因为它便宜、速度快、上下文长,适合连续输出。
提示词方面,不要只写“写个小说”。越具体越好,比如“写一个主角是盲人调音师、发生在雨天城市的悬疑短篇,第一章3000字,重点描写声音细节和人物心理”。OpenClaw对任务拆解的能力依赖于输入任务的清晰度,你给它一个模糊的指令,它只能给你一个模糊的产出。
还有一个实用的配置技巧:在Skill里定义一个“小说写作助手”的预设,把世界观、文风、禁忌词都写进去,之后每次写作直接调用这个Skill,效果比每次临时写提示词稳定得多。
5.3 接入飞书和微信的合规注意事项
把OpenClaw接进聊天软件是很自然的想法。飞书是目前支持性比较好的,可以去飞书开放平台创建企业自建应用,拿到App ID和App Secret,然后在OpenClaw里配置事件订阅地址。飞书要求回调地址必须是HTTPS,所以你需要一个域名和SSL证书,或者在服务器上部署Caddy自动申请证书。这个稍有点门槛,但操作一遍就会了。
关于微信,我要直接泼一盆冷水:个人微信自动化有封号风险,而且存在合规问题,强烈不建议碰。正经渠道是走企业微信的自建应用或客户联系API,这些官方接口可以合规地收发消息。如果你只是想把OpenClaw接进微信生态,优先研究企业微信,别去淘宝上买那些所谓的“机器人协议”,账号没了得不偿失。
6. 排错手册:端口不通、界面起不来、内存被打满
6.1 页面打不开:先分清安全组和系统防火墙
浏览器访问 http://公网IP:3000 超时或拒绝连接,这是最高频的问题。排查顺序很重要,我从上往下依次试:
先在服务器内部自测:
bash复制curl http://127.0.0.1:3000
如果能返回HTML或JSON,说明服务本身是正常的,问题出在网络层。接着看服务监听地址:
bash复制ss -tlnp | grep 3000
确保监听地址是 0.0.0.0 而不是 127.0.0.1。如果监听在回环地址,需要修改OpenClaw的启动参数,把host改成0.0.0.0。
然后检查系统防火墙:
bash复制ufw status
如果显示active,需要放行3000端口:
bash复制ufw allow 3000
最后去阿里云控制台确认安全组规则,入方向有没有放行3000端口。这两层防火墙经常有人只配了一层,另一层没配,结果端口一直不通。
6.2 control UI did not start的排查链路
报错 control UI did not start 通常是负责Web界面的子进程没有起来。我从实际经验来看,诱因主要有三类。
第一是Node版本过老。OpenClaw新版本对Node的版本要求比较高,至少是20以上。用 node -v 看版本,低了就升级。第二是端口占用。3000端口被其他进程占了,子进程绑不上端口自然起不来。用 lsof -i :3000 查一下谁占着端口。第三是依赖损坏,特别是用了Node方式安装、中途中断过安装的情况。解决方案是清理重装。
排查的时候一定要看完整日志,不要只看第一行报错。docker logs openclaw 最后50行通常有真正的报错堆栈。有一次我以为是什么高深的问题,结果日志里明明白白写着端口被占用,一分钟不到就解决了。
6.3 2G内存服务器的保命技巧
如果你用的2G内存服务器,跑着跑着发现OpenClaw变卡、甚至容器自动重启了,多半是内存不够。先去确认一下:
bash复制free -h
看available那一列。如果长期只有几十MB甚至为0,就需要上“保命三件套”。
第一是加大swap。swap是用硬盘空间虚拟出来的内存,虽然速度比物理内存慢,但能防止进程直接被OOM杀掉:
bash复制fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
第二是精简启动项,用Docker的 --memory 参数限制容器内存,避免它无限制吃内存。第三是能用DeepSeek API就尽量别在本地跑大模型,本地模型对2G内存服务器来说是灾难。
7. 进阶玩法:Skill机制与本地模型和NVIDIA NIM
7.1 写一个最简单的Skill
到这一步,你已经有一个能对话、能写作、能接入聊天软件的OpenClaw了。接下来值得投入时间的,是学会写Skill。
Skill可以理解为给OpenClaw装的一个“专属技能包”。它包含触发条件、提示词、以及可选的脚本工具。我给你演示一个最简单的“周报生成”Skill。
在数据目录下新建一个文件夹:
bash复制mkdir -p ~/.openclaw/skills/weekly-report
然后创建一个描述文件 SKILL.md,内容大概是这样:
markdown复制---
name: weekly-report
description: 根据用户提供的本周工作内容,生成一份结构化周报
triggers:
- 周报
- 周总结
---
你是一名周报助理。请根据用户输入的工作内容,生成包含本周工作、问题与风险、下周计划三个部分的周报。语言简洁,用分点列出。
之后你在对话里说“帮我写周报:这周在搞OpenClaw部署和小说平台对接”,OpenClaw识别到触发词“周报”,就会自动调用这个Skill,按照预设的角色和结构输出。
进阶一点的Skill可以绑定一个Python或Node脚本,让OpenClaw在需要时直接执行脚本去调外部API、读写文件。这个能力才是OpenClaw区别于普通聊天工具的核心。
7.2 接入本地模型和NVIDIA NIM的路线
用API模型很方便,但如果你对数据隐私有要求,或者想省API费用,可以考虑本地模型。OpenClaw支持接入OpenAI兼容的接口,所以不管是Ollama、vLLM还是NVIDIA NIM,只要它们暴露了兼容接口,都能配进来。
以Ollama为例,在服务器上装好Ollama并拉取一个模型(比如qwen2.5),然后启动一个带OpenAI兼容接口的服务。OpenClaw这边把它当作一个provider来注册,baseUrl填 http://127.0.0.1:11434/v1,模型名填你拉取的模型标签。注意,如果OpenClaw和Ollama都在同一台机器上,没问题;如果在不同机器,baseUrl要填对应机器的IP。
NVIDIA NIM的思路完全一样,它是NVIDIA提供的加速推理容器,也是OpenAI兼容协议。区别在于NIM对GPU有要求,普通ECS没有NVIDIA显卡,只能纯CPU跑,速度会慢很多。所以本地模型路线更适合那些有一张好显卡的玩家,没有显卡的话,老老实实用API是更务实的选择。
OpenClaw这个项目迭代速度很快,等你读到这篇教程的时候,可能已经有更好的安装方式或者新的配置项了。我的建议始终是:以官方仓库的README为核心,以我这篇教程为辅助理解,两者结合着看。毕竟我的价值不是帮你背命令,而是帮你理解每一步在干什么、出错了往哪个方向查。
