news 2026/10/6 5:19:48

华为云部署OpenClaw:从零到生产级智能体保姆级教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
华为云部署OpenClaw:从零到生产级智能体保姆级教程

1. 从“本地折腾”到“云端常驻”:为什么我建议在华为云上部署OpenClaw

先聊点实际的。如果你已经接触过OpenClaw(社区里也叫Clawdbot),大概率经历过这么几个阶段:一开始在本地电脑上装,装完发现依赖一堆,Python版本对不上,Node.js环境又闹脾气;好不容易跑起来了,电脑一合盖、网络一切断,机器人就“失联”了;再后来想挂个定时任务、接个Webhook,发现本地IP根本没法让外部服务稳定回调。这时候你就知道,把这套东西搬到云服务器上,不是“炫技”,而是刚需。

我这次用的是华为云服务器,操作系统选的Ubuntu 22.04 LTS,配置是2核4G。说实话,OpenClaw这玩意儿对硬件要求不算高,2核4G跑日常的Agent任务、Skill调用、多轮对话管理都够用,4核8G会更从容一点,尤其是你要并发处理多个会话或者跑一些比较重的Harness场景时。但入门阶段,2核4G完全能撑住,先把流程跑通,再考虑升配。

这篇文章面向的是真正想动手的同学——不管你是第一次接触OpenClaw,还是已经在本地方案里折腾过但没成功,只要你能照着命令复制粘贴,大概率都能在半小时内把服务跑起来。我会把整个流程拆成三层来讲:第一层是云服务器的基础准备,第二层是OpenClaw核心服务安装与配置,第三层是让它长期稳定运行、能对外提供服务的收尾工作。中间会穿插我踩过的坑和排查思路,希望能帮你少走弯路。

2. 云服务器基础准备:买机器、开端口、装环境一气呵成

2.1 选择华为云服务器时的几个关键决策点

华为云的入口就不啰嗦了,控制台里“弹性云服务器”就是我们要买的东西。选配置的时候,有几个容易被忽略的点,我单独拎出来说。

第一个是操作系统版本。我强烈建议选Ubuntu 22.04 LTS,别选CentOS或者Alibaba Cloud Linux。为什么?因为OpenClaw的很多依赖包(比如Python 3.10+、Node.js 18+)在Ubuntu 22.04的官方源里直接就有,装起来不用编译,省时间也少踩坑。你如果非要选CentOS,后面编译Python或者装一些系统库的时候,心态容易崩。

第二个是公网带宽。入门级选1Mbps就行,但如果你的OpenClaw要对接外部Webhook、接收图片或者频繁调用在线API,1M可能会成为瓶颈。我的建议是最低5Mbps,费用差不了多少,但体验完全不一样。实测下来,5M带宽拉取模型响应流式输出时,体感明显更流畅。

第三个是安全组规则。这是新手最容易忽略的一步。华为云默认的安全组只开放了22端口(SSH),你如果不手动加规则,就算服务在服务器上监听3000端口,外部也永远访问不到。后面我会专门讲端口开放,但你在购买时最好就把安全组的规则规划一下。

2.2 基础环境安装:Python、Node.js、Git一个都不能少

服务器拿到手,第一步是SSH连上去。Windows用户可以用PowerShell自带的ssh命令,或者直接用Xshell;Mac用户直接Terminal就行。登录之后,先更新系统包索引,这一步能避免后面装依赖时出现404或者版本过旧的问题:

sudo apt update && sudo apt upgrade -y

接下来装基础工具链:

sudo apt install -y git curl wget unzip build-essential

然后就是重头戏——Python和Node.js。OpenClaw的核心服务对Python版本有要求,太老或者太新都可能出问题。Ubuntu 22.04自带的Python是3.10,这是我验证过的稳定版本。检查一下:

python3 --version

如果输出是3.10.x,那就直接用系统的Python,不用装Miniconda。如果你之前装了Miniconda或者Anaconda,建议把base环境的PATH理清楚,不然一会儿用系统的pip、一会儿用conda的pip,很容易出现“装上了但import不到”的灵异事件。

Node.js这边,OpenClaw的Companion组件(后面会用到)需要Node 18+。Ubuntu 22.04的默认源里Node版本比较老,我推荐用NodeSource的源来装:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs

装完验证一下:

node --version npm --version

两个命令都有输出,说明环境基本齐了。这里有个细节:不要用apt直接装nodejs,那装出来的是老版本,后面跑OpenClaw的Windows Companion或者某些Skill的Node脚本时,一堆兼容性问题等着你。

2.3 安全组与防火墙配置:让外部流量能进来

这一步很重要,但也特别容易出错。很多人在服务器上把服务启动了,本地浏览器却死活打不开页面,十有八九是安全组没放行。

华为云控制台里,找到你的云服务器实例,点“安全组”,然后“配置规则”。你需要添加两条入方向规则:

协议端口用途
TCP22SSH远程连接(一般默认有)
TCP3000OpenClaw主服务端口(按需调整)

如果你后面要用HTTPS域名访问,还得预留443端口;如果用Nginx做反向代理,80端口也别忘。开放端口的原则是“最小授权”——只开你实际要用的端口,别图省事放行全部端口。

除了云平台的安全组,服务器自己的防火墙也要看看。Ubuntu默认没开ufw,但你可以确认一下:

sudo ufw status

如果显示inactive,那就不用管;如果active,记得放行上面那几个端口:

sudo ufw allow 22/tcp sudo ufw allow 3000/tcp

另外补充一点:如果你打算用HTTP协议直接暴露服务(而不是走HTTPS),建议至少加上一个Token认证,或者配合IP白名单。OpenClaw自带的一些接口如果不做保护,很容易被扫描器盯上。这个后面在配置章节会细说。

3. OpenClaw项目获取与依赖安装:从源码到可运行的完整链路

3.1 源码获取:Git克隆的速度优化与目录规划

OpenClaw的代码托管在GitHub上,国内服务器直接git clone时,速度时好时坏,有时候几十KB/s,一个仓库拉半天。我的做法是配置Git的代理或者用镜像加速。推荐一个稳妥方案:先用git clone直连试试,如果速度惨不忍睹,可以临时挂一个加速前缀。这里不是让你搞什么特殊网络工具,纯国内CDN加速服务就行,比如把仓库地址替换成一些公共的GitHub镜像域名。具体镜像地址不固定,搜索“GitHub镜像”就能找到不少,选一个速度稳定的。

仓库路径不需要我在这里赘述(避免链接失效),你在OpenClaw的官方文档或社区里能找到最新的仓库地址。克隆后进入目录:

cd openclaw

3.2 虚拟环境与依赖安装:不要污染系统Python

OpenClaw的依赖列表里有很多包,直接往系统Python里pip install,短期内没问题,但后续升级Python或者装其他项目时容易冲突。我建议用venv创建独立的虚拟环境:

python3 -m venv venv source venv/bin/activate

激活后,你会看到命令行前面多了(venv)前缀。接下来升级pip并安装依赖:

pip install --upgrade pip pip install -r requirements.txt

如果requirements.txt不存在,那可能项目是用pyproject.toml管理依赖的,那就用:

pip install -e .

这一步会拉取大量的依赖包。国内服务器访问PyPI可能有点慢,稳妥的做法是临时换用清华或者阿里云的PyPI镜像:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

镜像源的选择也有讲究:清华源同步频率高,阿里云源速度快,两个都行,看你的网络情况。装完之后,最好记录一下关键包的版本,比如openai、fastapi、uvicorn这些,后面排查问题时会用到。

3.3 Node.js依赖与Companion组件:额外的那一半拼图

OpenClaw从某个版本开始,把一部分能力拆到了Node.js侧,叫Companion,主要负责WebSocket通信、一些前端资源服务和系统级交互。也就是说,光装Python依赖还不够,你要把Node那边的依赖也装上才能跑完整功能。

在项目根目录下,如果有package.json文件,那就说明需要npm安装:

npm install

如果项目是前后端分离的,可能还要进到特定子目录去安装。具体看项目结构。装完之后,用npm run build(如果有这个脚本)来生成产物。

这里有个我常犯的错:Python和Node的依赖必须都装完再启动服务,不要只装一半就去试运行。否则服务起来后,某些Skill的接口会报500错误,而且日志里不直接告诉你“缺少Node依赖”,只会显示“模块未找到”之类的模糊错误,排查起来非常费劲。

3.4 配置文件初探:从示例文件起步,理解每个参数的意义

安装完依赖后,项目目录下应该有一个.env.example或者config.example.yaml之类的文件。复制一份出来作为正式配置:

cp .env.example .env

然后编辑.env。关键内容一般包括:

  • API密钥:如果你要对接大模型服务(比如OpenAI、Anthropic或国内的大模型接口),需要在这里填API Key和Base URL。
  • 服务端口:默认是3000。
  • 日志级别:建议先设成DEBUG,跑通了再改回INFO。

一个常见的坑是:很多人把API Key直接填在代码里,结果不小心提交到公开仓库,密钥泄露。正确的做法是始终用.env文件,并且把.env加入.gitignore。

4. 第一次启动与本地验证:从“进程起来”到“服务可用”

4.1 启动服务:前端跑起来不等于后端ready

依赖装好、配置填完,终于到了启动环节。在虚拟环境激活的状态下,执行:

python main.py

或者如果你用的是启动脚本:

bash start.sh

看到类似“Uvicorn running on http://0.0.0.0:3000”的日志,说明主服务起来了。这时候先别急着高兴,验证要从两个层面做。

第一层是本机自测:在服务器上直接curl:

curl http://localhost:3000/health

如果返回{"status":"ok"}之类的JSON,说明服务本身没毛病。

第二层是外部访问自测:在你自己的电脑浏览器里,打开http://服务器公网IP:3000。如果打不开,先别怀疑服务,按顺序排查:安全组有没有放行3000端口?服务器防火墙有没有开?服务有没有监听0.0.0.0而不是127.0.0.1?很多默认配置会把监听地址写成本地回环地址,导致外网无法访问,这是新手最常踩的坑。

4.2 配置模型API:没有密钥,一切都是空谈

OpenClaw作为一个智能体框架,核心玩法是让大模型驱动它执行任务。所以你不光要把服务跑起来,还得让它能够调用大模型API。在配置文件里找到类似model_provider的部分,填入你的API Key和模型名称。

这里我特别强调:如果你没有OpenAI官方的Key,完全可以用国内的大模型API替代。OpenClaw的接口设计比较友好,通常允许你通过base_url参数指向任意兼容的API端点,很多国内大模型服务都提供OpenAI兼容格式的接口。

填完之后,重启服务,然后在后台管理界面或者通过API发一条简单的消息,看看模型是否能正常回复。如果报401或者403,检查Key是不是复制错了;如果报超时,检查服务器到API服务商的网络连通性;如果报模型不存在,检查模型名称是否和你的API服务商匹配。

4.3 Skill机制初体验:让Agent真正“干活”

OpenClaw最吸引人的地方是它的Skill体系。简单理解,Skill就是给Agent预置的能力模块,比如“搜索网页”“调用工具”“处理文件”“执行代码”等。

在配置好模型API之后,我建议你做的第一件事就是启用一个最简单的Skill,比如“echo”或者“当前时间查询”,目的不是玩,而是验证Skill的加载链路是否正常。

启用Skill的方式通常是修改配置文件里的skills列表,或者在管理界面上切换。改完配置需要重启服务。

重启后,给Agent发条消息:“帮我看看现在几点了”?它如果正确调用Skill并返回时间结果,说明整个“意图识别 -> 技能路由 -> 执行 -> 回复”的闭环已经打通。这是你在云上的第一个完整Agent任务,值得有点仪式感。

5. 系统服务化:让OpenClaw脱离SSH窗口也能长期运行

5.1 用systemd守护进程:停止手动nohup的日子

很多人习惯了nohup python main.py &这种土办法,但说实话,不推荐用在云服务器上。原因很简单:一旦进程崩溃,不会自动重启;服务器重启后,服务也不会自动拉起。对生产环境来说,这等于没有保障。

用systemd来管理服务,才是正经做法。创建一个service文件:

sudo vim /etc/systemd/system/openclaw.service

内容参考如下:

[Unit] Description=OpenClaw Service After=network.target [Service] Type=simple WorkingDirectory=/your/path/to/openclaw Environment=PATH=/your/path/to/openclaw/venv/bin ExecStart=/your/path/to/openclaw/venv/bin/python main.py Restart=always RestartSec=5 User=ubuntu [Install] WantedBy=multi-user.target

这里有几个关键参数要注意:

  • WorkingDirectory必须指向项目根目录,否则服务可能找不到配置文件。
  • Environment最好显式设置PATH,确保用虚拟环境里的Python。
  • Restart=always意思是不管什么原因退出,都自动重启;RestartSec=5是重启前的等待秒数,防止疯狂重启。
  • User建议用一个普通用户,不要用root跑服务。

写完后,重载systemd并启动服务:

sudo systemctl daemon-reload sudo systemctl enable openclaw sudo systemctl start openclaw

查看运行状态:

sudo systemctl status openclaw

以后你想看日志,用journalctl -u openclaw -f实时跟踪;想重启,用sudo systemctl restart openclaw。这下舒服了,SSH断开也不影响服务。

5.2 Nginx反向代理与HTTPS的必要性

直接用IP加端口访问OpenClaw,虽然能用,但有几个尴尬:一是端口号不好记;二是HTTP明文传输,API调用时如果带着密钥,就有被中途截获的风险;三是某些浏览器策略对非标准端口有限制。

用Nginx做反向代理,把openclaw.yourdomain.com这个域名指向本机的3000端口,顺便挂上HTTPS证书,这套组合拳能一次性解决上面所有问题。

安装Nginx:

sudo apt install -y nginx

然后建一个配置文件:

sudo vim /etc/nginx/sites-available/openclaw

基础写法:

server { listen 80; server_name openclaw.yourdomain.com; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }

把配置文件软链到sites-enabled,然后测试并重载:

sudo ln -s /etc/nginx/sites-available/openclaw /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx

HTTPS证书我用的是Let‘s Encrypt,用certbot一键申请。前提是域名已经解析到服务器IP。执行:

sudo apt install -y certbot python3-certbot-nginx sudo certbot --nginx -d openclaw.yourdomain.com

证书会自动配置好,并设置定时自动续期。整个过程不到十分钟,但体验直接从“玩具级”跳升到“生产级”。

5.3 处理WebHook与回调地址的部署细节

OpenClaw有大量场景需要外部服务回调它,比如对接IM机器人、接入飞书/钉钉群聊、或者接收第三方平台的Webhook事件。这个时候,回调地址就该用你配置好的域名,而不是裸IP。

写回调地址时,要注意路径是否和项目里定义的路由一致。拿不到准确路由的时候,去看项目源码里的router定义,或者网络文档。遇到回调失败,优先看Nginx日志(/var/log/nginx/access.log和error.log),再去看OpenClaw的日志,两边一对照,问题通常就浮出水面了。

6. 常用Skill安装与实战:让云端Agent真正接管日常任务

6.1 从官方市场拉取Skill:一条命令搞定

OpenClaw社区维护了一批官方Skill,覆盖了搜索、翻译、摘要、日历管理、邮件发送等常见场景。安装方式一般是通过CLI:

openclaw skill install search openclaw skill install translate

安装完成后,修改配置文件的skills列表,把新Skill加进去,再重启服务。

这里提醒一句:Skill不是装完就自动启用的,很多Skill还需要在配置文件里填写对应的API Key或服务参数。比如“搜索”Skill,可能需要你配置搜索服务的API Key;“邮件”Skill,需要你填SMTP账号密码。只装不配,调用时会报一堆错。

6.2 自定义Skill开发:当Agent不够用时的正确解法

官方Skill再多,也覆盖不了所有人的需求。我在实际部署中,自己写过一个定时巡检的Skill:让Agent每隔一段时间去检查服务器磁盘使用率、内存占用和关键服务状态,发现异常就通过消息通知推送给我。

这个Skill的核心逻辑其实很简单:用Python写一个函数,放在Skills目录下,遵循项目的接口规范,然后在配置里注册。具体代码格式各个版本有差异,但思路是共通的。你在写的时候,参考项目里自带的示例Skill,照着葫芦画瓢就行。

有一点值得注意:自定义Skill如果涉及敏感信息(比如数据库密码、服务器SSH密钥),不要硬编码在代码里,放在.env里通过环境变量读取会更安全。

6.3 云端跑Skill和本地跑有什么区别

在云端部署之后,最直观的变化是Skill的执行不再受本地网络和关机的影响。比如我设置了一个每天早上9点从RSS源抓取行业新闻并生成摘要的Skill,它在云服务器上稳定跑了一个多月,一次都没漏过。这在本地电脑上是做不到的,因为我的笔记本不可能24小时开机。

另外,云端服务器的公网IP稳定,Skill里如果有需要外部服务回调的逻辑(比如创建了一个任务卡片,等待用户点击后触发后续动作),也能顺畅运行。

7. 常见问题与排查技巧实录

7.1 服务启动失败或端口被占用

症状是执行启动命令后,报错“Address already in use”。这通常是上一次运行的服务没有优雅退出。排查方式:

lsof -i:3000

找到占用端口的进程PID,然后:

kill -9 PID

再重新启动。如果是systemd托管,直接用sudo systemctl restart openclaw,它会自动接管。

7.2 WebSocket连接频繁断开

OpenClaw的Companion与主服务之间,以及某些前端页面与服务端之间,会用到WebSocket。如果你用Nginx反代,需要额外配置WebSocket升级头:

proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";

忘记加这段,前端页面可能能打开,但部分实时功能会出现“连接已断开”的提示,很迷惑。

7.3 模型API超时或返回空内容

这个案例我遇到好几次。表现为Agent回复“我暂时无法回答”或者干脆一直转圈。排查顺序是:

  1. 先看OpenClaw的日志,确认请求有没有发到模型服务商。
  2. 用curl直接测试API服务商的接口,确认网络链路通不通。
  3. 检查Base URL是否正确——很多人复制配置时,把/v1路径写错或者多加了空格。

如果以上都没问题,那就是模型服务商自己的限流或波动,可以适当调大超时时间,或者换成备用模型。

7.4 跨域问题(CORS)导致浏览器端无法访问

如果你从本地浏览器直接访问云服务器上的OpenClaw,页面脚本向服务端发请求时可能被CORS拦截。项目配置里一般有允许跨域的开关或白名单设置。开发阶段可以先把允许的域名设成*,生产环境再收紧到你自己的域名。

7.5 排查问题时的日志观看法

日志是排查一切问题的基础。systemd托管的服务看日志用:

journalctl -u openclaw -n 100 --no-pager

实时跟踪用:

journalctl -u openclaw -f

如果是手动启动的进程,日志会直接打到终端。建议在配置里把日志级别设成DEBUG,多打一点信息没坏处,排完问题再改回INFO。

8. 部署经验与成本控制心得

8.1 实测资源占用:2核4G到底够不够

我把我这台2核4G服务器跑了一段时间,日常OpenClaw服务在空闲时占用大约300MB内存,跑一个轻量任务时CPU峰值在30%左右,内存占用会到700MB-1GB。如果同时跑多个Skill,比如批量处理文本、调用外部搜索,内存会冲到1.5GB左右。所以结论是:入门够用,但别开太多重型Skill。

如果你想在同一个服务器上再装个数据库、Redis、Nginx这些,2核4G会有点紧张。预算允许的话,直接上4核8G,省心不少。

8.2 省钱策略:按需购买与数据备份

华为云的计费方式有包年包月和按需付费。入门阶段我建议先用按需付费,跑通核心流程之后,再换算一下包年成本,决定要不要转成包年。如果只是学习和测试,用完关机并释放磁盘,能省不少钱。

数据备份方面,.env配置文件、自定义Skill代码这些都属于“脑子里的财富”,建议定期备份到你自己的代码仓库或本地磁盘。云服务器本身挂了都可以重装,但配置丢了很麻烦。

8.3 安全加固的几条底线

云服务器暴露在公网上,随时会招来扫描攻击。以下几点是我实测后认为必须做的:

  1. SSH端口别用默认的22,改成高位端口(比如22022),能挡住90%的暴力破解。
  2. 用密钥登录,禁用密码登录。
  3. OpenClaw的服务接口,至少要加一层访问Token。
  4. 定期更新系统补丁:sudo apt update && sudo apt upgrade -y。

这些操作不复杂,但每一个都能实打实地降低被入侵的风险。

9. 写在最后:从能跑到好用,还有一段路要走

部署OpenClaw到华为云服务器,这件事本身不难,难的是把“能跑”变成“好用”。我个人的建议是,按顺序走完这套流程后,接下来花点时间去研究Skill的深浅用法。比如把多个Skill串联起来,做一个完整的自动化工作流;或者写一个定时任务,让Agent每天主动向你汇报云端服务的运行状态。

我踩过几次坑之后,最大的体会是:不要一次性追求大而全的功能配置,而是先把最小闭环跑通,再逐步加料。这个思路在部署OpenClaw上特别适用。

最后分享一个小技巧:如果你在配置过程中遇到任何报错,不要急着搜“OpenClaw xxx报错”,先看日志。日志不会说谎,它会把真正的线索藏在最后几行。养成看日志的习惯,比记住任何教程都管用。希望这篇教程能让你少走一点弯路,早日拥有一台真正为你自己工作的云端Agent。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/6 5:18:29

B550M主板内存插法与双通道实操指南

1. 先破一个流传最广的迷思:B550M主板根本不存在“四通道”这回事刚看到标题里写“从双通道到四通道”,不少朋友可能已经皱起眉头——等等,B550芯片组支持四通道内存?AMD Ryzen处理器本身就不支持四通道,连旗舰X570主板…

作者头像 李华
网站建设 2026/10/6 5:14:54

AI绘画马尾辫插件ponytail:从安装到参数调优的完整指南

马尾辫这个题材,说实话在 AI 绘画和角色设计圈子里一直是个让人又爱又恨的东西。爱是因为高马尾、双马尾、低马尾都是出效果最快的发型,一个发型的改变就能让角色气质完全不一样;恨是因为它太容易画崩了,发丝的走向、扎发的位置、…

作者头像 李华
网站建设 2026/10/6 5:14:54

DeepSeek Harness桌面端实战:API Key配置、插件体系与内网部署避坑指南

1. 从命令行到桌面端:DSH 到底解决了什么问题DeepSeek Harness 这个项目在开发者圈子里其实已经不算新面孔了,早期它以命令行工具的形式存在,核心定位是给大模型应用提供一个统一的"套壳与编排层"。你可以把它理解成一个中间件&…

作者头像 李华
网站建设 2026/10/6 5:14:38

C语言排序算法与指针传参:选择排序真题详解与易错点剖析

计算机二级C语言考试,排序问题几乎是每年必出的大菜。尤其是选择排序,看着最简单,可一旦跟指针传参搅在一起,那就是另一回事了。我记得有一次刷真题,遇到一道“用选择排序法对数组升序排序,要求排序函数参数…

作者头像 李华
网站建设 2026/10/6 5:13:18

电赛E题扩展板设计:接口复用、电源管理与抗干扰实战

1. 天猛星扩展板不是“万能板”,而是电赛E题场景下被逼出来的硬件解法“天猛星”这三个字在电子设计竞赛圈子里,最近两年突然高频出现,但凡翻过几届电赛E题真题的人,大概率会在B站视频弹幕、知乎讨论帖或者某宝商品标题里撞见它。…

作者头像 李华