最近看到不少技术群里在聊 OpenClaw,也就是之前社区里一直流传的 Clawdbot。这东西说白了就是一个开源的个人 AI 智能体(Agent)运行框架,和普通聊天机器人最大的区别是,它能挂上大模型后自动规划任务、调用工具、操作终端,相当于在你的服务器上养了一个能自己干活的数字员工。
我前后折腾了两个礼拜,本地电脑部署、Windows 环境调试、云服务器迁移都试了一遍,最后稳定跑在京东云上一台 2 核 4G 的实例上。整个过程真正动手部署的步骤其实很短,如果不算注册账号和等系统初始化,核心流程在 5 分钟以内就能完成。这篇文章就按照我实际操作的路子来写,从买服务器到跑起来,再到日常用、扩技能、排问题,一条线捋清楚。
先说清楚一个很多新手容易误解的地方:OpenClaw 不是某个具体的大模型产品,它更像一个“调度中枢”。你给它配好大模型的 API 密钥(或者本地模型),再把日常任务用自然语言描述出来,它就会自己拆解步骤、调用本机命令、访问文件、操作工具链去把活干完。哪怕你是第一次接触这类项目,只要能跟着文档操作一步不落,也能把环境搭起来。下面内容我尽量不废话,直接按可复现的流程来。
1. 为什么选择云服务器:本地机器搞不定的三个现实问题
1.1 OpenClaw 到底解决什么问题
先说项目定位。OpenClaw 的核心价值在于“Agent 化”,也就是让 AI 从“回答问题”升级到“完成任务”。举几个实战例子:让它定时扫描指定目录里的日志文件并整理出异常摘要;让它根据你写的 Markdown 文档批量生成配置文件;或者让它自己写一段 Python 脚本来处理数据分析任务。这些场景里,OpenClaw 不是单纯输出一段建议,而是直接在终端里把命令执行了、把脚本跑了、把结果文件写好了。
很多人第一次看到这类工具都会问:这不就是命令行版的 AI 吗?区别恰恰在于“执行”二字。普通 AI 聊天窗口给你一堆代码,你得自己复制、保存、运行、排错。OpenClaw 是直接把这一整套动作都接管过去,你只需要告诉它目标是什么,它自己想办法拆解和验证。所以我建议你把它理解成“长在你服务器上的一个智能运维 / 开发助理”。
1.2 本地电脑与京东云服务器的取舍
我最初是在自己电脑上跑的 OpenClaw,跑通是跑通了,后续连着遇到三个麻烦:第一个,电脑不可能一直开机,一旦合盖或者断电,服务就断了;第二个,想让手机在外面也访问到你本机的 OpenClaw,就得搞内网穿透、动态域名那一套,配置量不小,稳定性还得看运营商脸色;第三个,以后想加定时任务、挂机器人、跑自动化脚本,本地机器一锁屏就全看心情。
换成云服务器后,这三个问题直接消失。服务器 7×24 小时在线,有独立公网 IP,SSH 什么时候连都行。哪怕你在路上用手机连上去改个配置,也是同样顺畅。
我这边选京东云的原因很直接:轻量应用服务器按时长计费,配置透明,控制台里创建实例、选镜像、放行端口都是可视化操作,对新手非常友好。买一台最低配的 2 核 4G 实例,跑一个 OpenClaw 加上配套的 Node.js 环境,完全够用。如果后续要挂更重的模型或者跑本地推理,再升配到 4 核 8G 也不迟。
| 对比项 | 本地电脑 | 京东云服务器 |
|---|---|---|
| 在线时长 | 受开关机、休眠影响 | 7×24 小时稳定运行 |
| 外网访问 | 需要配置内网穿透 | 自带公网 IP,开端口即用 |
| 环境复用 | 个人电脑受系统环境影响大 | 干净 Linux 环境,可任意折腾 |
| 资源占用 | 占用日常办公资源 | 独立资源,不干扰本地使用 |
| 成本 | 电费 + 设备损耗 | 按月计费,最低配即可起步 |
| 扩容 | 受硬件上限限制 | 控制台随时升级配置 |
1.3 “5 分钟”这个说法是不是噱头
先回答这个大家最关心的问题——严格来说,5 分钟指的是“核心搭建时间”,也就是从你拿到服务器 IP 和密码之后,到 OpenClaw 能在终端里正常对话的这段流程。我实测下来,如果提前把 API 密钥准备好、网络环境顺手,且系统组件缓存清空,从 SSH 登录到成功启动一次服务,压缩在 5 分钟以内是能做到的。
但你要理解这里有几个前置条件:服务器的系统盘和带宽要给力,安装依赖时网络不能频繁断流;OpenClaw 的依赖包比较多,npm install 阶段是最耗时的一步;最后首次启动时模型接口的响应速度也会影响你“看到效果”的时间。把这几点说清楚,不是泼冷水,而是希望你别被类似“一键脚本秒装”的夸张说法带偏。下面我把每一步能省时间的点都标出来。
2. 环境准备:一台服务器,几个必要的软件,一张模型 API 密钥
2.1 购买和初始化京东云服务器
打开京东云控制台,找到轻量应用服务器或者云主机页面,点击“创建实例”。关键的配置项我直接给你一个参照模板:
- 地域:选离你最近的城市区域,内网延迟低,后续访问也快。
- 镜像:选择 Ubuntu 22.04 或 Debian 12,不要选带桌面版的,纯命令行版够用且省资源。
- 规格:2 核 4G 起步,30GB 以上 SSD 系统盘,带宽按 3Mbps 或以上选。
- 登录方式:建议直接设置密码,方便新手使用;后期熟悉了再改成密钥登录。
- 安全组:默认放行 SSH(端口 22)即可。如果你打算用 Web 面板或 HTTP 访问 OpenClaw,再额外放行 80 和 443。
创建完成后,控制台会显示公网 IP。然后立即做一件事:重置一次密码,并开启“仅允许密钥登录”之前不要做其他任何操作。安全组规则要认真检查,不要直接把 22 端口对全网开放密码登录,至少要把默认密码改强大一点,这是云服务器上最基础的保命操作。
2.2 三种 SSH 登录方式
我日常用的登录方式有三种,按场景区分:
- Windows 自带终端:在 PowerShell 里执行
ssh root@你的服务器IP,输入密码即可进入。 - Mac / Linux 终端:同样执行
ssh root@IP,表现一模一样。 - 图形化工具:FinalShell 或 Xshell 这类工具,左侧能看到文件目录树,适合想要可视化操作的新手。
第一次登录会有 host key 确认提示,输入 yes 回车就可以。如果你担心密码登录的安全性问题,后续可以用ssh-copy-id把本地公钥推送到服务器,再禁用密码登录。这一步不影响我们接下来部署,可以放到最后再处理。
2.3 确认服务器初始环境
进入服务器后,先看一眼系统里已经有了什么工具。依次执行下面三条命令:
node -v npm -v git --version如果你买的镜像比较干净,大概率会提示命令不存在。不要慌,这正是我们要补的环境。这里有个经验:尽量直接用官方二进制或 NodeSource 源来装 Node.js,不要为了省事去装系统仓库里那个远古版本,否则后面跑 OpenClaw 依赖时会因为版本太低报各种看不懂的错误。
3. 核心实操:从空白系统到 OpenClaw 跑起来
3.1 安装 Node.js 运行环境
OpenClaw 是基于 Node.js 的项目,所以第一步就是把 Node.js 和 npm 装好。我推荐使用 NodeSource 的官方源,这样安装的是官方构建版本,跟项目兼容性最好。
# 先更新系统软件源 apt update && apt upgrade -y # 安装 NodeSource 源并安装 Node.js 22 LTS curl -fsSL https://deb.nodesource.com/setup_22.x | bash - apt install -y nodejs # 验证版本 node -v npm -v为什么推荐 Node 22 而不是 18 或 16?很简单,OpenClaw 这类比较新的 Agent 项目大量使用 fetch、WebSocket、异步并行新特性,老版本 Node 对 ES Module 的支持也不够完善,装好以后要么运行报错,要么功能不完整。Node 20 也能用,但 22 LTS 目前是成本最低的稳妥选择。
如果你之前装过旧版本 Node,建议先卸载干净再装新的,避免环境变量和包管理器版本互相干扰。我踩过最深的坑就是系统自带 Node 14,然后 npm install 一路报错,换了 LTS 之后整个世界清净了。
3.2 拉取 OpenClaw 项目源码并安装依赖
接下来从 GitHub 把 OpenClaw 克隆到服务器上。命令很简单,但有一个影响速度的关键点:npm 的官方源在国内访问不稳定,安装依赖容易出现超时。所以我建议先把 npm 镜像源切换为国内可用的镜像,这一步能帮你省下至少三分之一的时间。
# 配置 npm 镜像源 npm config set registry https://registry.npmmirror.com # 克隆项目(仓库地址以官方文档为准,建议复制官方提供的链接) git clone <OpenClaw官方仓库地址> openclaw cd openclaw # 安装依赖 npm installnpm install这步是整个过程里最耗时的一环,根据网络状况差异,可能从几十秒到几分钟不等。如果你看到终端里有大段编译日志,说明项目里有部分原生依赖需要从源码编译,这时候耐心等着就行。国内服务器上跑这步比海外服务器慢不少,但切换好镜像源之后体验会好很多。
装完依赖后,检查一下项目根目录下有没有.env.example之类的模板文件。有的话复制一份出来改成.env,这是我们接下来要填模型接口信息的地方。
3.3 配置大模型接入口:云 API 或本地 Ollama
热词里有一个问题问得很好:“OpenClaw 只能用接入 API 的方式使用算力吗?”答案是完全不是。它至少支持两种算力来源:一种是云服务商的模型 API,比如 OpenAI 兼容接口;另一种是本地部署的模型推理服务,比如用 Ollama 拉起开源模型。两种方式各有侧重,我分别说。
先看云端 API 模式。这种方式配置简单、响应快、模型能力强,不需要服务器有很强的硬件。你只需要把 API Key 和模型名称填进.env文件即可。具体的变量名以项目 README 为准,但常见格式差不多是下面这样:
# .env 文件示例 OPENAI_API_KEY=你的API密钥 OPENAI_MODEL=gpt-4o-mini OPENAI_BASE_URL=https://api.example.com/v1如果你的模型服务商提供了兼容 OpenAI 格式的接口,大概率只需要把BASE_URL换成服务商地址就行。这里提醒一句:API Key 是敏感信息,千万别把.env文件提交到 Git 仓库,也不要截图发群里。
再看本地 Ollama 模式。你可以在服务器上安装 Ollama,然后拉取像 Qwen2.5、Llama 3 这样的开源模型,再在 OpenClaw 配置里把模型接口指向http://127.0.0.1:11434/v1。这种方式的好处是数据不离开你的机器,隐私性更强,而且不依赖外部 API 计费;代价是推理速度受制于服务器 CPU 或 GPU,2 核 4G 的机器跑小尺寸模型可用,跑大模型就比较吃力。
我自己现在的用法是:日常对话和任务规划走云端 API,处理敏感数据时切到本地 Ollama 小模型。两者可以并存,需要哪个切哪个,非常灵活。
3.4 启动 OpenClaw 并完成首次对话
依赖装好后,看项目根目录的package.json,一般启动脚本会写在scripts字段里。最常见的启动命令是npm run start,也可能是node index.js或者更具体的一串命令。以官方 README 为准,执行后如果看到类似“Server is running on port xxx”的日志,说明服务已经起来了。
这时候先别急着做任何花哨的测试,先在终端里试一句最简单的指令,让它执行一个无害的系统命令:
你帮我检查一下当前服务器的磁盘空间使用情况,然后格式化输出。正常情况下,OpenClaw 会调用内置工具,执行df -h或者类似命令,把结果整理后返回给你。这一步验证的是整个链路最关键的环节:模型能理解你的意图,Agent 能调用终端工具,工具结果能正确回流到模型。只要通了,后面所有玩法都建立在这条链路上。
如果你发现它没有执行命令而是直接给了一堆解释,多半是 Agent 的工具调用权限没有打开,去查 README 里关于tools或skills的配置项,确保启用了终端执行。
3.5 让 OpenClaw 在后台稳定运行
直接在前台跑npm run start有个问题:你一旦关闭 SSH 连接,进程就被系统杀掉。解决办法有两个,我用的是 systemd 服务方案,因为它能开机自启、自动重启,还能用 journalctl 查日志,属于生产环境的标准做法。
创建一个服务文件:
sudo vim /etc/systemd/system/openclaw.service内容参考下面:
[Unit] Description=OpenClaw Service After=network.target [Service] WorkingDirectory=/root/openclaw ExecStart=/usr/bin/node index.js Restart=always RestartSec=5 EnvironmentFile=/root/openclaw/.env [Install] WantedBy=multi-user.target解释一下几个关键配置项:WorkingDirectory指定项目路径,ExecStart指向 Node 的绝对路径和入口文件,Restart=always表示进程异常退出时自动拉起,EnvironmentFile则确保.env里的环境变量在服务启动时被加载。
之后执行:
systemctl daemon-reload systemctl enable --now openclaw systemctl status openclaw通过systemctl status看到active (running)就说明服务已经在后台稳定运行了。我切身体会,这一步虽然多花两分钟,但后续再也没有因为 SSH 断开导致服务掉线的问题,非常值。
4. 日常使用与 Skill 扩展:把它变成能干活的工作流
4.1 命令行下的交互技巧
OpenClaw 的服务跑起来之后,通常会有两种接入方式:一种是在服务器本地的终端交互界面里直接对话,另一种是通过 HTTP API 调用。本地终端交互适合日常管理和调试,HTTP 接口适合接入其他应用。
在本地终端里使用时,有几个实用技巧:可以按方向键上下翻阅历史命令;输入clear清空上下文开始新会话;如果中途发现任务跑了很久,按 Ctrl+C 终止当前任务,但不要反复打断太多次,否则模型可能会在长上下文里迷失重点。建议每个任务都描述得足够具体,比如指明输入文件路径、期望输出路径、约束条件,这样 Agent 的执行成功率会明显提升。
我这里说的“任务描述”不是让写长篇大论,而是把目标、边界、输出格式三要素说清楚。比如“扫描 /data/logs 下所有 .log 文件,找出含 ERROR 的行,统计数量,输出到 /data/result.txt”。这种描述方式比“帮我分析日志”要高效得多。
4.2 Skill 机制:给 Agent 装“外挂”
“openclaw skill”是社区里非常热门的话题。Skill 说白了就是一个插件机制,允许你把一套固定的操作流程封装成一个“技能包”。以后只要用一句自然语言提到这个技能名,OpenClaw 就会自动加载对应流程去执行。
Skill 目录通常长这样:
skills/ my-skill/ SKILL.md run.pySKILL.md用来描述技能的用途、触发条件、参数定义;run.py是具体执行的脚本。比如你可以写一个“定时备份”技能:SKILL.md里写清楚“当用户提到备份时调用此技能”,脚本里实现压缩目录、上传到对象存储的逻辑,以后只需要说“执行备份”即可。
这个机制的威力在于,你把重复性的日常工作逐步沉淀成技能,OpenClaw 就从一个通用助手变成了一个越来越懂你业务场景的自动化平台。我自己写的几个技能里,最有用的一个是自动巡检服务器磁盘、内存、负载,并生成 Markdown 报告。说句实话,一开始写 Skill 还觉得有点门槛,但跑通第一个之后就停不下来,全是收益。
4.3 多端部署与生态联动
热词里提到了 Windows 部署、安卓 Termux、ROS2 和 Gazebo 的集成,我把这块也简单聊一下。
如果你坚持在 Windows 上跑 OpenClaw,主要靠 WSL2 里的 Linux 环境,启动命令、依赖安装和 Linux 服务器上完全一样。但有个前提:Windows 系统本身的 WSL 功能得是好的,这正是很多人卡住的地方,后面常见问题部分我会专门说怎么修。
安卓手机上的玩法,社区里有人在 Termux 里直接装 Node.js 和 OpenClaw,从技术上讲是可行的,但我不建议日常主力机这么干。移动端不仅资源受限,后台进程容易被系统回收,而且 SSH 中断后会话管理比较麻烦,更适合把它当成一个折腾娱乐项目。
还有做机器人方向的朋友在折腾 OpenClaw 与 ROS2 Humble、Gazebo 仿真环境的联动,脑洞是把 OpenClaw 当成机器人系统的自然语言控制层,让模型生成指令去操控仿真环境。这属于比较硬核的跨界玩法,如果你本身就在搞机器人,值得研究一下,但对大多数人来说可以先不碰。
5. 常见问题与排查:我在实操中踩过的坑
5.1 Windows 下“OpenClaw 无法安全验证 WSL2 环境”怎么处理
这是 Windows 本机部署热词中出现频率最高的问题,报错文案通常包含“请在 PowerShell 中运行 wsl --status”。我先说原因:OpenClaw 在 Windows 上运行时,需要借助 WSL2 的 Linux 内核来跑命令,如果系统没有启用 WSL 功能、内核版本太旧,或者默认发行版未安装,OpenClaw 就检测不到可用的 Linux 环境,于是给你这个提示。
修复步骤按顺序来:
- 打开 PowerShell(管理员模式),执行
wsl --install。这个命令会自动安装 WSL 所需的全部组件,包括虚拟化平台和 Linux 内核更新。 - 重启电脑,然后运行
wsl --status,确认输出内容里没有报错信息。 - 运行
wsl --list查看已经安装的 Linux 发行版,如果没有就执行wsl --install -d Ubuntu装一个。 - 确保默认发行版版本是 2,运行
wsl --set-version Ubuntu 2强制切换。 - 再次启动 OpenClaw,问题即可消失。
这个报错在 Windows 11 上出现的概率比 Windows 10 低不少,因为新系统默认启用虚拟化平台。老机器如果 BIOS 里没开虚拟化,也要先去 BIOS 确认一下,不然wsl --status会一直卡在“虚拟化未启用”的状态。
5.2 npm install 超时或者极慢
这是国内服务器上最普遍的问题。根因是 npm 官方源在国外,国内服务器访问延迟高、甚至经常断。处理方式就是切换镜像源,刚才已经提到过。执行完后可以运行npm config get registry验证,看到返回的是国内镜像地址就说明生效了。
如果你切换了镜像源依旧很慢,再看有没有编译型依赖卡在安装过程里,比如某些包需要编译 C++ 代码。可以检查服务器上是否装了 build-essential:
apt install -y build-essential python3 make g++装完再重新npm install。还有一个小技巧:npm 的并发下载可能拖慢速度,可以把网络请求设为离线缓存,但这不是重点,镜像源已经解决了绝大部分问题。
5.3 Node 版本报错:SyntaxError 或者模块找不到
出现类似SyntaxError: Unexpected token '?'的报错,基本就是 Node 版本太老,解析不了现代 JavaScript 语法。解决方法是切换到 Node 22 LTS 以上版本。
推荐用 nvm 管理 Node 版本,因为后续升级切换特别方便:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash source ~/.bashrc nvm install 22 nvm use 22现在很多 Insta 教程会直接让你用apt install nodejs,但那装出来的版本往往是很早以前的稳定版,跑新项目直接翻车。老老实实用 NodeSource 源或 nvm,是避免环境问题的第一原则。
5.4 端口被占用,进程起不来
启动时报EADDRINUSE,说明你要用的端口已经被其他进程占用了。先用下面命令找到占用进程:
ss -lntp | grep 端口号如果是已知进程,直接改 OpenClaw 配置中的端口号,避免冲突。如果是僵尸进程,可以用kill -9 PID清理掉。我个人建议把 OpenClaw 的端口设为不常用的高位端口,比如 8765,这样既能避开常见服务,又能减少被恶意扫描的概率。
5.5 模型 API 连接失败或者 401 报错
这种问题每天都有,原因大多是 API Key 填错了、接口地址不对、或者账户额度不足。排查思路如下:
curl -I <你的API_BASE_URL>先用 curl 测试接口地址是否可达、返回状态码是否正常。如果连接被拒,说明网络路径有问题;如果返回 401 或 403,则说明认证失败,重点检查 API Key 和认证方式。注意看 .env 文件里不能有多余空格、引号,也不要复制成“sk-xxx”后面带着换行符,这类小问题浪费了我整整一个下午,真的值得警惕。
5.6 问题排查速查表
| 现象 | 可能原因 | 快速处理 |
|---|---|---|
| WSL2 无法安全验证 | WSL 功能未启用/内核过旧 | PowerShell 执行wsl --install,重启后wsl --status |
| npm install 超时 | 官方源访问慢 | npm config set registry https://registry.npmmirror.com |
| 启动报语法错误 | Node 版本过旧 | 用 nvm 安装 Node 22 LTS 并切换 |
| 端口冲突 | 端口已被占用 | ss -lntp找到进程,换端口或 kill 占用进程 |
| API 401/403 | Key 错误或额度不足 | 用 curl 测接口地址,逐项检查 .env 配置 |
| 服务断连进程消失 | 前台运行导致 SSH 断开被杀 | 配置 systemd 服务并设置 Restart=always |
| 对话回复不执行任务 | 工具调用被禁用 | 检查 skills/tools 配置,确保终端执行权限打开 |
6. 进阶玩法:从可用到好用,值得花时间的几个方向
6.1 Ollama 本地模型实现全离线运行
其实很多人关心“OpenClaw 是不是只能用云端 API 算力”这个问题,深层担忧无非是隐私、费用和外部依赖。如果你对这三方面都有顾虑,强烈建议试试 Ollama 本地模式。
服务器上安装 Ollama 很简单:
curl -fsSL https://ollama.com/install.sh | sh然后拉取一个合适尺寸的模型,比如:
ollama pull qwen2.5:7b再把 OpenClaw 的模型接口指向http://127.0.0.1:11434/v1,并把模型名改成qwen2.5:7b即可。
实测下来,2 核 4G 的服务器跑 7B 模型会有明显延迟,单轮对话大概十几秒到几十秒,但胜在完全离线。如果想要更流畅的体验,建议用 1.5B 或 3B 的小模型做日常任务,或者直接把服务器加配置。这个模式的意义在于,敏感环境里完全可以做到数据不出服务器,很多团队就是这么落地使用的。
6.2 把 OpenClaw 接入到你的自动化工作流
一旦 OpenClaw 跑稳定了,我就开始把它嵌入日常工作的自动化流程里。最简单的做法是写一个 shell 脚本,定时调用 OpenClaw 的 HTTP 接口:
#!/bin/bash curl -X POST http://127.0.0.1:8765/api/chat \ -H "Content-Type: application/json" \ -d '{"message":"生成昨日销售数据日报并发送到指定目录"}'把这个脚本丢进 crontab,创建一个每天凌晨两点的定时任务,它就是一台 24 小时待命的智能报表助手。更进阶的玩法是写一个简单的 Python 服务,把 OpenClaw 的接口包一层,接入到 IM 群机器人的 webhook 里,让团队里的人都能在聊天群里直接发布任务给它执行。
这一步把项目的价值放大了很多倍。从“一个跑在服务器上的工具”升级成了“团队共享的自动化执行层”。我自己最满意的一个场景就是用它自动处理格式化的日志分析和故障摘要,节省的时间非常可观。
写到最后的一些实际体会
在京东云上折腾 OpenClaw 这段时间,我最大的感受是:这类 Agent 框架真正迭代速度极快,你两星期前看的教程可能已经过时了。所以不要指望有一份“永久有效的完美配置”,而是要建立起一套自己的调试方法论。我的习惯是每次改配置都先把旧的.env备份一份,出现问题可以快速回退;所有服务日志都重定向到统一的日志目录,排查问题时按时间线翻日志,基本能定位九成的问题。
最后分享一个小技巧:如果你在服务器上用 tmux 开一个常驻会话来跑 OpenClaw(不依赖 systemd 的话),记得在启动命令里把日志输出重定向到文件,比如npm run start > openclaw.log 2>&1。这样就算哪天 systemd 配置出错了,你也能通过tail -f openclaw.log看到实时输出,不至于两眼一抹黑。按照上面这套流程走下来,从买服务器到用上 OpenClaw,基本上就是一杯水的工夫,剩下的就交给实践去打磨了。