ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

阿里云轻量服务器部署OpenClaw:三步搭建24小时在线的专属AI助理

阿里云轻量服务器部署OpenClaw:三步搭建24小时在线的专属AI助理 说实话我一开始对“三步拥有专属AI助理”这种说法是嗤之以鼻的。以前也折腾过不少AI相关的小项目结果不是本机跑两天就吃灰就是只能像吉祥物一样在网页里聊几句根本谈不上“助理”。真正让我改变想法的是我在阿里云一台2核2G的小服务器上把OpenClaw跑起来的那一刻——它不依赖我电脑是否开机也不依赖我是不是记得打开某个终端而是自己在服务器上待命接到任务就干活干完了还能通过短信通知我。这篇就是我的完整部署记录包含整个决策过程、每一步的操作用意、以及我实际踩过并且修复了的坑。新手照着做大概率半小时内能拥有一台属于自己的、24小时在线的AI助理。1. 为什么我最终把 OpenClaw 部署到了阿里云上1.1 个人AI助理最容易被忽略的问题它必须“在线”我一开始是在本地笔记本上尝试部署OpenClaw的因为看起来最简单——装个Node环境拉代码跑起来就完事。但真正用起来才发现问题我的笔记本不是常年开机的睡眠策略、合盖、断电、系统更新重启任何一个动作都会让助理“失联”。一次重要提醒没收到之后我就意识到个人AI助理的本质是一个服务不是一个软件。服务意味着它应该7×24小时在线有固定入口最好还有稳定的外网IP。这时候云服务器就成了绕不开的选择。国内云厂商里阿里云的优势在于产品线非常完整不只是给你一台服务器而是连模型推理、短信通知、DNS解析、SSL证书这些周边能力全都现成。对我来说这是最省事的组合方案。1.2 OpenClaw 解决的不是“聊天”问题而是“干活”问题OpenClaw 和我之前玩过的那些AI套壳应用有个明显区别它并不执着于让你和它唠嗑而是更偏向于把任务拆解、调度和执行做在一起。你可以把它理解成一个“管家服务框架”——你告诉它目标它自己规划步骤调用模型来理解指令然后在对应环境里执行动作最后汇报结果。这就带来一个选型上的连锁反应既然它是干活的那它必须能接触到真正的“生产环境”。本地电脑接触的是本地文件和环境变量而云服务器能接触到的是公网、数据库、API服务、定时任务、消息通道。部署在阿里云上OpenClaw 的操作半径一下子就大了很多。1.3 阿里云在这套方案里扮演了什么角色我梳理了一下阿里云在这套方案里其实被拆分成了几个独立角色我不需要分别采购但得清楚每个部分的作用角色对应产品在方案中的作用托管环境轻量应用服务器/ECS提供长期在线运行OpenClaw的Linux系统与公网IP模型大脑百炼(DashScope)提供通义千问系列模型的API调用能力消息通道阿里云短信服务让助理能主动把任务结果、异常信息推送到我手机信任背书SSL证书、域名解析让外部服务能安全地回调到我的助理有人可能会觉得部署个开源项目用台VPS就够了没必要把云厂商的各种服务全都接进来。但实际体验下来AI助理的价值和你让它触达的通道数量成正比。只挂在本地它顶多算个高级玩具接入短信和API之后它才真的像个能办事的人。2. 部署前必须准备好的三样东西服务器、Node环境、API Key很多新手在部署OpenClaw时最容易犯的错是拿到服务器后立刻敲安装命令结果装到一半发现缺东缺西。我把准备工作拆成了三件事这三件事不做好后面一定会卡壳。2.1 选一台合适的阿里云轻量应用服务器先想好端口策略轻量应用服务器是阿里云对个人用户最友好的产品形态操作面板直观不需要像ECS那样去理解VPC、安全组这些概念。我买的是2核2G的配置系统镜像选Ubuntu 22.04。这个配置跑OpenClaw加一些基础依赖完全够用如果再跑个小数据库也不至于撑爆内存。买完之后第一件事不是装软件而是看控制台里的防火墙规则。轻量服务器的防火墙默认只放行了少数端口如果你要访问OpenClaw的Web控制台或者让外部服务回调API必须提前放行对应的端口。我在这一步吃过亏后面会详细说。2.2 用 nvm 装 Node.js别用系统自带的旧版本OpenClaw是基于Node.js的项目对Node版本有要求。Ubuntu系统源里自带的Node版本通常偏旧直接apt install nodejs很可能会遇到兼容性问题。我更推荐用nvm来管理Node版本过程不复杂但需要你有耐心看它下载curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash source ~/.bashrc nvm install 22 nvm alias default 22 node -v这里的关键点是用nvm alias default把默认版本固定下来。如果不做这一步服务器一重启node命令可能就找不到了。这是一个很隐蔽但非常常见的问题。2.3 在百炼控制台开通模型服务拿到 API KeyOpenClaw本身没有大模型能力它需要接入一个模型服务的API。我选择的是阿里云百炼平台因为它在国内服务器上访问非常稳定而且提供的通义千问系列模型覆盖面广从轻量的qwen-turbo到更强的qwen-plus都有。开通步骤登录阿里云百炼控制台完成实名认证。开通大模型服务创建一个API Key。把API Key复制保存好。这个Key后面要写进OpenClaw的配置文件里它相当于你助理的“大脑通行证”泄露了等于别人也能用你的额度。另外建议顺手开通一下短信服务。虽然这步在后面才会用到但短信签名和模板审核都需要时间先提交审核等你部署完OpenClaw审核基本也过了。3. OpenClaw 三步部署从空壳服务器到一个会回话的助理准备工作做完就可以进入正题了。这里我以OpenClaw当前release版本的口径来写老版本的目录结构和字段名可能有差异但思路是一样的。3.1 第一步拉取项目代码并安装依赖登录服务器先更新系统基础包然后安装Git和构建工具apt update apt install -y git build-essential git clone 你的OpenClaw仓库地址 cd openclaw安装依赖之前建议先把npm源切到国内镜像。这一步不是玄学亲测在默认源下安装大型依赖可能耗时很长而且失败率明显更高npm config set registry https://registry.npmmirror.com npm install如果项目里有原生模块可能还需要编译这时build-essential就派上用场了。装完依赖后大多数OpenClaw版本还需要跑一次构建命令npm run build构建完成后检查一下是否生成了dist目录这是源码编译后的产物后续启动用的是这里面的文件。3.2 第二步写入配置文件把大脑和助理连接起来OpenClaw的主配置是一个YAML或者JSON格式的文件不同版本位置不一样但常见的做法是在项目根目录下创建一个config目录里面放主配置。我直接给出我实际在用的最小配置结构你可以对照修改# config.yaml server: host: 0.0.0.0 port: 3000 llm: provider: openai_compatible base_url: https://dashscope.aliyuncs.com/compatible-mode/v1 api_key: sk-你的百炼APIKey model: qwen-plus temperature: 0.7 bot: name: 我的助理 timezone: Asia/Shanghai prompt: 你是一个靠谱的个人助理收到任务后先规划再执行这里有一个细节需要提醒server.host必须设为0.0.0.0而不是127.0.0.1。因为服务部署在云服务器上如果你只监听本机回环地址外部就永远无法访问到你的助理。这个字段是新手最容易忽略的。3.3 第三步启动服务并验证结果启动方式我推荐先用nohup放到后台让它在SSH断开后继续运行nohup npm start openclaw.log 21 启动后先别急着干别的看一眼日志确认没有报错tail -f openclaw.log看到类似server is running on 0.0.0.0:3000的提示说明主体服务已经起来了。接着再验证一下外部是否能访问curl http://127.0.0.1:3000/health如果你测试的是本地回环地址能通说明进程是好的但要想确认公网能不能访问你还得用另一台设备访问http://你的服务器公网IP:3000。如果这一步不通大概率是防火墙问题我后面会单独讲。4. 把大脑换成通义千问百炼兼容OpenAI接口的接入细节4.1 为什么我选择OpenAI兼容模式接入OpenClaw这类开源项目生态里默认支持的是OpenAI接入方式。但OpenAI的模型服务在国内服务器上使用并不方便而阿里云百炼提供了一个非常聪明的解决方案——兼容OpenAI接口格式。也就是说你不需要在OpenClaw里装任何特殊插件只要把base_url指到百炼的兼容端点API Key换成百炼的KeyOpenClaw就能直接调用通义千问代码逻辑一行都不用改。这个端点的地址是https://dashscope.aliyuncs.com/compatible-mode/v14.2 配置里的字段为什么这样写我把配置中关键字段的意图解释一下方便你排查问题provider: openai_compatible告诉OpenClaw这是一个兼容OpenAI格式的接口不是原生OpenAI。base_urlAPI地址。千万注意结尾要带/v1漏掉的话所有请求都会404。api_key填百炼控制台创建的Key不是你的阿里云账号密码也不是AccessKey。model决定助理脑子的大小。选不同模型效果和成本都有差别。当我第一次配置时base_url漏掉了/v1日志里一直报404排查了很久才发现是这么个低级错误。4.3 模型选型qwen-turbo、qwen-plus、qwen2.5-3b百炼上模型很多不是越贵越好而是越合适越好。我做了个简单的对照表模型特点适合场景qwen-turbo速度快、成本低日常问答、信息整理、简单任务执行qwen-plus综合能力更强推理更稳多步任务的拆解与规划qwen2.5-3b-instruct开源小模型资源占用低本地方案测试、敏感数据不出域的场景我个人的建议是如果仅仅是跑测试Demo用qwen-turbo就够如果你想让助理真正处理复杂的多步任务建议直接上qwen-plus。有段时间我把模型切到了qwen2.5-3b-instruct在简单任务上表现还行但一旦任务涉及长上下文和多轮规划它的回答质量和稳定性就和qwen-plus有明显差距。5. 让助理从“被动回答”变成“主动通知”阿里云短信API接入实战5.1 通知能力是AI助理的刚需OpenClaw跑起来、模型也接上了但我觉得它还缺一块拼图主动性。你不可能一直盯着Web控制台看它有没有干完活。这时就需要一个通知通道——任务完成时给手机发条短信出错时也能第一时间知道。阿里云短信服务就是干这个的。5.2 短信接入的完整流程要让OpenClaw能发短信你需要准备三样东西签名、模板、AccessKey。申请短信签名在短信服务控制台提交一个签名比如“AI助理提醒”。签名相当于短信开头的【】内容需要审核。申请短信模板模板内容是类似“您有一个任务已完成${taskName}”的格式。变量用${}包裹这是硬性要求。创建RAM子账号AccessKey强烈不建议用主账号的AccessKey权限太大了。应该创建一个子账号只授予短信发送权限然后把Key配给OpenClaw。在OpenClaw里接入短信通常是在配置文件中加一个通知模块notify: provider: aliyun_sms access_key_id: LTAI5tXXXXXXXXXX access_key_secret: XXXXXXXXXXXXXXXXXXXX sign_name: AI助理提醒 template_code: SMS_123456789 template_param: taskName配置好之后写一个让助理主动通知的场景测试一下让它执行一个耗时任务完成时触发短信发送。5.3 “短信API发不出去”的真实排查链路我在这个环节被卡了将近两个小时因为控制台配置看起来全对但短信就是发不出去。我把排查顺序完整记录下来给同样遇到这个问题的人参考查签名状态短信签名必须是“已通过”状态不能是“审核中”或“未通过”。我第一次用的是新申请的签名还没等到审核通过就开始测结果必然是失败。查模板变量名是否一致模板里定义的变量是${taskName}那么调用接口时传的参数名必须严格一致大小写都不能错。我一开始传了个task_name平台直接把请求拒绝了。查RAM权限子账号有没有授予AliyunDysmsFullAccess权限没有权限的话会报“NoPermission”错误但很多人不会注意到这个报错因为日志里可能只显示发送失败。查API版本和Endpoint短信服务的Endpoint在不同地域不同请求时如果没指定正确的地域节点也会报错。大部分情况下直接用默认的dysmsapi.aliyuncs.com即可。查手机号归属有些新购短信套餐只支持中国大陆手机号如果填了非大陆号码会提示“InvalidPhoneNumber”。按这个顺序排查绝大多数“发不出去”的问题都能解决。6. 部署与运行期间反复踩过的坑我一次性写给你们6.1 Windows下“无法安全验证环境”的报错先跑wsl --status很多人在本地Windows上装了OpenClaw的Companion客户端启动时遇到一个提示“无法安全验证WSL2环境请在PowerShell中运行wsl --status”。我第一次看到这个报错也是一头雾水。先说结论OpenClaw的一些组件在Windows上依赖WSL2来模拟Linux环境而这个报错的意思是系统检测到WSL存在但状态不正常。最常见的两种情况是WSL2还没有正式启用只停留在“安装包已下载”的状态。已经安装过WSL但默认版本设置的是WSL1或者内核组件没更新。处理方式就是按提示打开管理员权限的PowerShellwsl --status wsl --update wsl --set-default-version 2执行完后重启终端重新打开OpenClaw的Companion基本就能通过了。这个坑本身不复杂但很耽误时间如果不知道原因你可能去重装客户端、重装Node把系统折腾一遍都找不到问题。6.2 安全组/防火墙端口不通最隐蔽的杀手部署完OpenClaw后我在浏览器里访问服务器IP却打不开页面。第一反应是服务没起来来回重启好几次日志显示一切正常。最后才意识到是服务器防火墙没有放行访问端口。阿里云轻量服务器默认只放行22端口和某些基础端口你需要在“防火墙”页面手动添加规则应用类型自定义 协议TCP 端口3000 允许访问所有IPv4添加规则后用curl -v http://公网IP:3000再测一次通了就说明是这道墙的问题不通再回头查服务状态。这个坑的迷惑性在于你在服务器本机上写curl http://127.0.0.1:3000永远都是通的因为本机访问不经过云防火墙这会给你一种“服务正常的错觉”。6.3 SSL证书与HTTPS访问让助理接口更体面也更安全OpenClaw跑通之后我发现HTTP协议有两个问题一是控制台和API都是明文传输敏感信息有风险二是如果后续要做域名回调很多第三方平台要求HTTPS。所以补上一张SSL证书是值得的。阿里云提供免费版SSL证书可以绑定到你的域名下。如果你的服务器有独立域名配置方式很简单在阿里云控制台申请免费证书完成域名验证。下载Nginx格式证书。在服务器用Nginx做反向代理把443端口转发到OpenClaw的3000端口。这样一个简单的Nginx配置就能解决HTTPS问题和端口暴露问题server { listen 443 ssl; server_name yourdomain.com; ssl_certificate /etc/nginx/ssl/cert.pem; ssl_certificate_key /etc/nginx/ssl/key.pem; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }免费证书一年一换记得在到期前续期。我把续期备注写在了日历上免得某天突然发现服务被浏览器拦了。6.4 成本预警别让AI助理悄悄掏空你的余额最后聊一个很多人不会主动告诉你的事AI助理跑起来后成本不是零。模型API按token计费如果配置里没有做限制一个异常任务循环就能在日志里刷出几千次调用。我个人做过两个控制措施在OpenClaw配置里设置单次任务的最大token数和最大请求次数。在百炼控制台设置额度告警比如消费达到10元、50元、100元时发短信提醒。实测下来日常问答和简单任务每个月消耗的模型费用基本可以忽略不计但如果你让它执行复杂的循环调用且忘了加限制费用会涨得很快。这不是劝退只是提醒既然你有能力部署一个助理也应该有能力给它设预算。从选型、部署、接入模型到打通短信这整套流程我前前后后走了好几遍期间踩过的坑几乎都写在上面了。对我来说这套方案最大的价值不在于“我有AI助理了”这个标签而在于它把AI真正变成了一个运行在云端、随叫随到的基础设施。最后再分享一个小习惯我每周会花两分钟看一眼OpenClaw的日志文件和百炼的费用账单及时发现异常调用和潜在故障。这个习惯比任何高深配置都管用——一个托管在云端的助理它最需要的是一个盯着它的人。
返回列表