1. 华为云上跑 OpenClaw,为什么值得折腾一次
OpenClaw(曾用名 Clawdbot)是一个可以本地部署的 AI 智能体框架,能通过自然语言指令完成文件管理、信息检索、内容处理、流程自动化这类实际操作,还带记忆能力和插件扩展机制。说白了,它不像普通聊天机器人只回你一段文字,而是真的会去执行任务。适合谁?适合想在自己服务器上跑一个可控智能体、又不想被各种平台绑定的人。
我这次选华为云,是因为手里正好有一台闲置的轻量服务器,系统干净、公网 IP 固定,拿来跑常驻服务很合适。整个流程从环境准备到服务可用,实测下来两分钟左右能跑完,前提是命令别抄错。核心链路是:华为云服务器装 Node.js 22 → 全局装 OpenClaw → 用 TaoToken 统一 Key 打通模型通道 → 写一份 config.toml 骨架 → 启动网关 → 发一条验证请求确认 API 通道连通。
这篇不绕弯子,直接给可复制的命令和配置骨架。你照着敲,遇到报错就翻第 5 节的排查表。模型通道这块我用的是 TaoToken 的统一 Key,一个 Key 走多个模型,省得在配置文件里来回换 base_url。
2. 前置准备:TaoToken 统一 Key 与华为云环境
2.1 为什么用 TaoToken 统一 Key
OpenClaw 本身不带模型能力,它得对接一个大模型 API 才能理解和生成内容。传统做法是每个模型厂商配一套 Key 和地址,配置文件里塞一堆字段,换模型就得改配置重启。TaoToken 的思路是给你一个统一入口,API 地址固定为https://taotoken.net/api,你用同一个 Key 就能调用不同模型,config.toml 里只需要维护一份凭证。
对 OpenClaw 这种要长期跑、可能随时切模型的场景来说,这点很实用。你可以在模型对话里先试试哪个模型顺手,再去 console 里生成正式 Key,最后把 Key 填进 config.toml。整个流程不用改代码,只改配置。
2.2 华为云服务器基础配置
我用的规格参考如下,你按自己预算调整:
| 项目 | 建议值 | 说明 |
|---|---|---|
| 实例规格 | 1 核 2GB 及以上 | 内存低于 2GB 启动容易崩 |
| 系统盘 | 40GB 以上 | 装依赖和日志够用 |
| 操作系统 | Ubuntu 22.04 / Debian 12 | 命令通用性好 |
| 安全组 | 放行 18789 | OpenClaw Web 控制台默认端口 |
| 登录方式 | SSH 或 Web 终端 | 能敲命令就行 |
安全组这一步别漏。华为云控制台进实例详情,找到安全组规则,入方向加一条 TCP 18789,源地址按需填0.0.0.0/0或者你自己的 IP。不放行的话,服务起来了你也访问不到 Web 控制台。
2.3 环境检查
登录服务器后先确认 Node.js 版本。OpenClaw 要求 Node.js 22.x 及以上:
node -v npm -v如果输出v22.x.x和对应的 npm 版本号,说明环境可用。如果提示command not found,先装 Node.js,下一节给命令。
3. 可复制配置:从装 Node.js 到 config.toml 骨架
3.1 安装 Node.js 22
Ubuntu / Debian 系统直接走 NodeSource 源,比手动解压省事:
sudo apt update sudo apt install -y curl git curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt install -y nodejs node -v最后一行应该输出v22.x.x。如果还是旧版本,检查一下是不是系统里有多份 Node,用which node看看路径。
3.2 配置 npm 镜像并安装 OpenClaw
国内服务器拉 npm 包有时候慢,先换镜像:
npm config set registry https://registry.npmmirror.com npm install -g openclaw装完验证一下:
openclaw --version能输出版本号就说明全局安装成功。如果提示openclaw: command not found,多半是 npm 全局 bin 目录没进 PATH,执行npm config get prefix看看路径,再把它加到 PATH 里。
3.3 初始化配置
openclaw onboard按提示走:同意协议、选择快速启动、模型配置这一步先跳过(我们后面手写 config.toml)、通道按需启用。初始化完成后会在用户目录下生成配置文件夹。
3.4 写 config.toml 骨架
OpenClaw 的配置文件路径,Linux 下一般是~/.openclaw/config.toml。如果目录不存在就手动建:
mkdir -p ~/.openclaw然后写入下面这份骨架。注意这是 TOML 格式,不是 JSON,字段名和层级别抄错:
# ~/.openclaw/config.toml # OpenClaw 网关基础配置 [gateway] host = "0.0.0.0" port = 18789 # TaoToken 统一 Key 接入 [model] provider = "openai-compatible" base_url = "https://taotoken.net/api" api_key = "你的TaoToken统一Key" model_name = "claude-sonnet-4-5" max_tokens = 2048 temperature = 0.7 timeout = 60 reasoning = false # 日志 [log] level = "info"几个关键点解释一下。base_url固定写https://taotoken.net/api,不要带多余路径。api_key换成你在 TaoToken console 里生成的 Key。model_name按你实际要用的模型填,不确定就先在模型对话里试。reasoning = false是防止某些模型返回空回复,这个坑我踩过,加上就正常了。
3.5 启动网关
openclaw gateway start启动后确认状态:
openclaw gateway status看到 running 就说明服务起来了。浏览器打开http://你的服务器公网IP:18789,能进 Web 控制台就成功了一大半。
4. 验证请求:确认 API 通道真的连通
服务起来不等于模型通道通。很多人卡在这一步:Web 控制台能打开,但发消息没反应。所以必须单独验证一次 API 调用。
4.1 用 curl 直接打 TaoToken 接口
先绕过 OpenClaw,直接测 Key 和地址对不对:
curl -X POST https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer 你的TaoToken统一Key" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-5", "messages": [{"role": "user", "content": "只回复两个字:连通"}], "max_tokens": 32 }'如果返回 JSON 里choices[0].message.content有内容,说明 Key、地址、模型名三者都对。如果返回 401,是 Key 问题;返回 404,是地址或模型名问题;返回超时,检查服务器出网是否正常。
4.2 在 OpenClaw 里发一条指令
回到 Web 控制台,输入一句简单指令,比如「列出当前目录下的文件」。如果 OpenClaw 能返回执行结果,说明整条链路——网关、配置、模型通道——全部打通。
也可以看日志确认:
openclaw logs --follow日志里会打印每次模型请求的状态码和耗时。看到 200 就放心了。
4.3 设置开机自启
服务器重启后服务别丢,加一条自启:
sudo tee -a /etc/rc.local <<'EOF' /usr/bin/openclaw gateway start EOF sudo chmod +x /etc/rc.local不同系统自启方式不一样,systemd 更稳,但 rc.local 够用且简单。
5. 本篇常见错排查
5.1 启动类报错
openclaw: command not found出现频率最高。先npm config get prefix看全局路径,再确认该路径下的 bin 目录在 PATH 里。临时解决可以export PATH=$PATH:$(npm config get prefix)/bin,永久解决写进~/.bashrc。
服务启动后自动退出,九成是内存不够。1 核 1GB 的机器跑 OpenClaw 很吃力,升到 2GB 或者关掉其他占内存的进程。用openclaw logs看具体错误。
5.2 端口与访问问题
Web 控制台打不开,按顺序查三件事:openclaw gateway status确认服务在跑;华为云安全组确认 18789 已放行;服务器本机防火墙确认没拦。三者缺一不可。
端口被占用的话,Linux 下这样查:
lsof -i:18789 kill -9 进程ID5.3 模型通道报错
返回 401:Key 错了或者没带Bearer前缀。返回 404:base_url写错,确认是https://taotoken.net/api而不是别的路径。返回空内容:在 config.toml 里加reasoning = false再重启。
响应超时就把timeout从 60 调到 90,同时把max_tokens降到 1024 试试。如果 curl 能通但 OpenClaw 不通,多半是 config.toml 格式问题,TOML 对引号和层级敏感,用openclaw config validate检查一下。
5.4 配置文件写入失败
提示权限不足时,确认当前用户对~/.openclaw目录有读写权限。实在乱了就openclaw onboard --reset重新初始化,再手动补 config.toml。
6. 接下来怎么走
服务跑起来只是起点。如果你打算长期用 OpenClaw 做编码辅助或者跑 Agent 任务,建议去 Coding Plan 看看,按次计费比按 token 更适合高频调用场景。想先试模型效果的,直接进模型对话发几条指令感受一下。Key 管理和生成在 console 里,接入细节翻接入文档。
我自己的习惯是:新服务器先跑通 curl 验证,再写 config.toml,最后启动网关。顺序反了容易在排查时分不清是网络问题还是配置问题。另外 config.toml 改完一定要重启网关,不然不生效——这个我忘了好几次,白等半天。