
最近OpenClaw在开源AI代理圈子里讨论度很高加上华为云这边把全套云服务配套整理得比较齐全很多朋友开始尝试把它部署到云上跑。这个项目本质是一个多端AI代理调度框架核心能力是把大模型接到各种工具和技能上让它能真正“干活”——抓网页、处理文件、调接口配合skill扩展机制实用性比单纯聊天机器人高不少。我自己前后在裸机和Docker两条路上各踩了一遍坑最后才把一套稳定可复用的部署流程跑通。这篇文章就以华为云为背景把从买机器到跑起来、再到多端联动的完整过程整理成一份可抄的作业适合刚接触OpenClaw、想用云服务器长期运行的读者参考。1. 部署前先想清楚三件事1.1 先把OpenClaw的架构角色搞清楚OpenClaw本身不是模型而是一个“调度层”。你可以把它理解成给大模型装了一个遥控器模型负责理解任务OpenClaw负责把任务拆成具体操作然后通过skill调用工具去执行。比如让它去抓取某个网页并总结内容真正抓网页的动作由skill完成模型只负责决定“该抓哪个链接、怎么总结”。这个架构决定了部署时的一个关键选择控制端OpenClaw本体跑在哪里、模型从哪里来。控制端必须长期在线所以放在云服务器上是合理方案模型则有两种来源——云端API比如DeepSeek、通义等或本地模型通过Ollama跑开源权重。两种方式各有利弊后面会详细对比。部署前还要明确一点OpenClaw的skill机制是它的灵魂。一个不带任何skill的OpenClaw基本只是个空壳装好之后只能做最基础的对话装上合适的skill才能变成能查资料、能处理文档、能调用API的“数字员工”。所以部署流程里skill目录的挂载和权限配置比启动服务本身更容易出问题后面我会专门讲。1.2 为什么我选华为云而不是随便一台VPS如果你只是想试玩任何一台2核4G的服务器都能跑。但如果要长期使用华为云有几个点确实更省心。第一是节点在国内模型API的调用延迟明显比海外服务器低尤其是接DeepSeek这类国内API时实测响应时间能差出一倍以上。第二是配套服务完整ECS、OBS对象存储、云监控这些都是打通好的后续想给OpenClaw加存储、做日志告警不用再自己拼一套工具链。第三是我比较看重的安全组和VPC隔离。OpenClaw这种带公网访问入口的服务最怕的就是端口暴露被扫描。华为云的安全组规则可以精确到“只允许某个IP访问某个端口”比在服务器里折腾iptables直观得多。另外华为云的CloudShell也值得一提浏览器里直接开终端省去了本地配SSH客户端的麻烦对新手尤其友好。2. 云资源准备与网络规划2.1 ECS选型别买错规格我在第一次部署时买的是2核2G的入门款结果Docker跑起来之后内存直接见红OpenClaw的核心服务频繁被系统杀掉不得不在凌晨爬起来扩容。这里直接给出一份选型参考表按你的用途对号入座。使用场景推荐规格系统盘数据盘备注轻量试玩2核4G40G可不买只跑OpenClaw核心服务日常使用4核8G40G50G同时带多个skill接本地模型8核16G40G100G通过Ollama跑7B~14B模型跑更大模型16核32G或GPU实例40G200G需要GPU加速时另选系统镜像我建议直接用Ubuntu 22.04 LTS原因很简单Docker和Python生态对它的支持最成熟遇到问题搜到的解决方案也最多。磁盘方面系统盘40G起步数据盘按需购买后面skill和日志增长比你想象得快。购买时还有几个容易忽略的选项。弹性IP建议直接绑定一个虽然现在按带宽计费略有成本但比每次重启都换IP省心太多。计费模式上如果只是测试按需付费就行确认要长期跑包年包月能省不少。2.2 安全组与密钥登录配置这部分算是保命配置千万别跳过。创建ECS时华为云会让你选择登录方式一定要用密钥对而不是密码。密钥登录的好处是没有密码可爆破私钥只保存在你本地服务器天然免疫弱口令扫描攻击。安全组的规则我建议按最小化原则配置22端口SSH仅允许你自己的办公IP访问不要全网段开放。8080端口OpenClaw Web界面如果只是自己用同样限制源IP如果确实需要随时随地方便访问至少不要在这层放行管理类接口。其他端口一律不放行。VPC和子网可以保持默认华为云会自动创建一个隔离网络。如果后续要加RDS数据库或OBS存储在同一个VPC内互相访问不需要走公网既安全又省流量费。一个小技巧华为云的CloudShell可以直接在控制台里打开服务器终端而且它会自动复用你的登录凭证。这意味着即使你在外面没带电脑、只有一个浏览器也能完成应急运维不用临时去找SSH工具。3. 核心部署实操3.1 Docker Compose一键拉起OpenClaw我第一次是照着网上教程直接在系统里装Python依赖结果Python版本冲突、缺编译工具、环境变量对不上折腾两天后彻底放弃改用Docker Compose。这个决定是我在OpenClaw部署上做过最正确的事——所有依赖被镜像封好主机只装一个Docker就够了。登录服务器后先装Docker和Compose插件。Ubuntu上可以用官方脚本也可以直接用aptsudo apt update sudo apt install -y docker.io docker-compose-plugin sudo systemctl enable --now docker然后创建项目目录和配置文件mkdir -p ~/openclaw/{data,skills,logs} cd ~/openclaw在目录下新建docker-compose.yml内容如下镜像名和版本请以OpenClaw官方仓库README为准services: openclaw-core: image: openclaw/core:latest container_name: openclaw ports: - 8080:8080 volumes: - ./data:/data - ./skills:/skills - ./logs:/logs environment: - TZAsia/Shanghai - MODEproduction - LOG_LEVELinfo restart: unless-stopped启动命令就三行docker compose pull docker compose up -d docker compose logs -f-d参数让服务在后台跑logs -f实时看日志。如果一切正常日志里会出现服务启动完成、监听8080端口之类的输出。以后要升级版本只需要docker compose pull再docker compose up -d数据都在挂载目录里不会丢。3.2 浏览器里完成界面初始化服务跑起来后在浏览器打开http://服务器IP:8080第一次访问会进入初始化向导。这里会要求你设置管理员账号和密码务必用强密码。初始化完成后你会看到控制台主界面左边是会话列表中间是对话窗口右边或设置区里是模型配置入口。这个过程里最容易踩的坑是浏览器打不开页面。先确认安全组放行了8080再在服务器上自测一下curl -I http://127.0.0.1:8080如果本机能通而外部打不开90%是安全组没配对。还有一个小概率问题是ECS默认的防火墙ufw拦截了端口可以用sudo ufw status查一下。3.3 模型接入云API模式与本地OllamaOpenClaw的模型配置是关键步骤我分别在API模式和本地模型模式上做过完整测试直接上干货。API模式以DeepSeek为例你需要在模型服务商那边创建API Key然后在OpenClaw的配置页填写Base URLhttps://api.deepseek.comAPI Key你申请的KeyModel Namedeepseek-chat填完保存后在会话里发一句话测试。如果返回正常模型通道就通了。API模式的优势是零运维、响应快缺点是按量付费高频使用时每月会产生一定费用。本地模型模式数据不出服务器成本可控但需要足够的内存和算力。我用Ollama跑过qwen2.5:7b在8核16G的ECS上效果能接受。部署方式是再跑一个Ollama容器docker run -d --name ollama -p 11434:11434 -v ~/ollama:/root/.ollama ollama/ollama docker exec -it ollama ollama pull qwen2.5:7b然后在OpenClaw配置页把Base URL指向http://127.0.0.1:11434模型名填qwen2.5:7b即可。注意这里要用127.0.0.1而不是服务器的公网IP因为两个容器在同一台机器上走本机回环更快也不占公网带宽。两种模式的选择建议日常聊天式任务用API模式体验最好涉及隐私数据或需要批量跑的任务本地模型更安心。也可以混合配置——OpenClaw支持不同任务路由到不同模型灵活度很高。4. Skill机制与多端扩展4.1 安装并启用第一个SkillOpenClaw的skill就是我们常说的“技能包”本质上是把某个具体能力封装成可加载的模块。比如“网页抓取”是一个skill“文本摘要”是另一个skill。模型在对话中会判断当前任务需要哪个skill然后调用它。部署时我把./skills目录直接挂载进了容器这意味着往这个目录丢技能包重启服务后就能生效不需要重新构建镜像。实际操作时从官方仓库或社区下载skill包解压到~/openclaw/skills/下然后docker compose restart重启后去控制台检查skill列表确认新技能出现在已加载列表里。有些skill还带Python依赖比如依赖requests或beautifulsoup4如果容器里没有日志会报导入错误。这时候要么改代码在容器内装依赖要么做一个带依赖的专用镜像。我推荐后者因为容器一旦被重建手动装的依赖会全部丢失。4.2 Windows Companion与安卓Termux的联动配置热词里一直有“openclaw windows companion”和“termux安装”我也一起测了。Companion是官方提供的桌面端控制台装好后可以连接云端的OpenClaw实例相当于在本地开了一个快捷操作面板。对我这种经常在多个设备间切换的人来说云上服务是“大脑”各端是“遥控器”Companion的价值就是让遥控器更好用。安卓端用Termux部署OpenClaw我也跑通了。原理是Linux环境里运行同样的框架但手机算力有限不建议在上面跑重负载任务更适合当移动监控端或临时下发任务的终端。我实操的步骤是在Termux里安装基础依赖pkg install git python。克隆OpenClaw仓库到手机本地。按照项目文档安装Python依赖。启动OpenClaw连接到云端的同一实例登录后就能看到云端会话。注意手机端只是客户端不是第二个调度中心。任务还是在云服务器上执行手机负责交互。这样手机上的操作延迟高一点但好处是任务不会因为手机锁屏断网而中断。4.3 把数据目录和备份纳入日常用了一段时间后我最大的教训是数据不能只存在容器里。OpenClaw的会话记录、配置、skill状态都存在挂载目录里这其实已经是好习惯了。但云服务器本身可能出故障所以定期备份是必须的。我的方法是每天凌晨通过cron把~/openclaw/data目录打包上传到华为云OBS桶里tar czf openclaw-$(date %F).tar.gz -C ~ openclaw再配一条华为云CLI的命令推到OBS保留近7天的备份。整个脚本写进crontab成本和脑力消耗都很低但出问题时能救命。这一步虽然不是“部署”的必选项但等数据丢了再后悔就晚了。5. 常见问题排查与避坑实录5.1 服务起了但页面打不开这个问题出现的频率远超预期。我从自己经验和社区反馈里总结出三条检查路径。第一确认安全组放行8080端口这在华为云控制台的“安全组”页面里改改完立即生效。第二在服务器本机执行curl -I http://127.0.0.1:8080如果通说明服务正常问题在网络层面如果本机都不通去翻docker compose logs。第三确认ECS绑定了弹性IP有时候公网IP没绑定或者变了页面当然打不开。还有一个很少人注意的点Ubuntu自带ufw防火墙虽然默认关闭但如果你之前手动启用过它会拦截所有未放行端口。用sudo ufw status查一下有输出的话先sudo ufw allow 8080。5.2 模型调用频繁超时或报错接API模型时最常见的问题是超时和限流。我遇到的典型报错包括“Request timed out”和“Rate limit exceeded”。前者通常在第一次配置时出现原因是填错了Base URL或者服务器到API服务商的网络链路不通。解决方式是先用curl测试API连通性curl -X POST https://api.deepseek.com/v1/chat/completions \ -H Authorization: Bearer 你的Key \ -H Content-Type: application/json \ -d {model:deepseek-chat,messages:[{role:user,content:hi}]}如果curl能正常返回说明网络和Key都没问题问题出在OpenClaw的配置项上。限流则通常是并发开太高很多模型服务商对每分钟请求数有限制。我的做法是在OpenClaw设置里把并发数调低超时时间改成30秒再开重试机制让任务排队而不是同时挤上去。5.3 磁盘爆满与日志无限增长跑了两周后我发现服务器磁盘可用空间从40G掉到了8G吓一跳。一查是Docker容器日志和OpenClaw的logs目录在暴增。日志轮转是最容易被忽视的运维项。Docker默认不限制容器日志大小一个高频调用的容器一天产生几百MB日志很常见。需要在/etc/docker/daemon.json里配置日志上限{ log-driver: json-file, log-opts: { max-size: 50m, max-file: 3 } }改完重启Docker服务。OpenClaw自身的日志级别也可以从INFO调到WARNING减少输出量。另外别忘了定期清理数据盘里的备份和临时文件我习惯用一个shell脚本每周清理一次超过3天的tar包。5.4 安全加固的几条实用建议既然把OpenClaw挂到了公网安全就躲不开。我的原则是“既要用又要少暴露”。第一管理界面不要用默认端口把8080在docker-compose里映射成8088之类的非常规端口能过滤掉大量自动化扫描。第二安全组里对管理端口只放行你的办公IP段宁可临时改规则也不要长期全网开放。第三开启华为云的日志审计和主机防护云平台自带的告警能力超过你自己写的脚本。关于密钥管理API Key这类敏感信息不要写死在配置文件里交给别人容易泄密。Docker Compose支持环境变量文件把Key放到.env里然后加进.gitignore或.dockerignore比直接写在yaml里稳妥得多。6. 写在最后的经验这套部署流程我自己已经跑通多遍也从频繁翻车变成了半小时内完成搭建。最深的体会是OpenClaw这类项目别追求一步到位先按“最小可用”跑起来再加skill、再考虑多端联动。第一次直接全套上往往会因为某个环节同时出问题而无法判断根因。我后来每次换新服务器部署都是一条命令起服务验证模型连接再加技能包——这个顺序从没变过。如果在部署中卡住优先看日志而不是瞎改配置。docker compose logs能告诉你90%的问题剩下10%跟网络和安全组相关也都能按上面的排查路径定位到。OpenClaw的可玩性很高把基础搭扎实之后无论是接本地知识库还是让它定时跑任务都有无限扩展空间。