买“龙虾”第一期:OpenClaw@华为云 配 TaoToken 的 config.toml 骨架与 SSH 验证
2026/9/23 13:48:01 网站建设 项目流程

1. 为什么要在华为云 ECS 上跑 OpenClaw

OpenClaw 是一个能真正“动手干活”的开源智能体项目,它不只是聊天,还能读写文件、执行命令、调用浏览器、发布服务。很多人第一次接触它,是想让它帮忙写个小游戏、自动整理服务器、跑个定时任务。但真到落地这一步,问题往往不在模型本身,而在“龙虾住哪儿”——也就是运行环境。

我选择华为云 ECS 来承载 OpenClaw,原因很直接:公网 IP 稳定、安全组可控、按需开关机成本低,而且华为云 MaaS 提供了兼容 OpenAI 协议的模型服务,接入层不用自己折腾。但 ECS 上跑智能体,绕不开三件事:SSH 登录与端口管理、nginx 反向代理、以及模型服务的统一 Key 配置。这三件事没理顺,后面调模型、开 Web UI、跑任务都会卡住。

这篇是“买龙虾”系列第一期,目标很明确:把 OpenClaw 在华为云 ECS 上跑起来,给出config.toml的可复制骨架,配好 TaoToken 的统一 Key,最后用 curl 验证请求链路,并告诉你日志该看哪里。适合已经在华为云开了 ECS、想认真把智能体用起来的人。全程命令可直接粘贴,参数按你的实际 IP 和 Key 替换即可。

2. TaoToken 前置:统一 Key 与接入地址

OpenClaw 支持多种模型提供方,但如果你每个 provider 都单独配一套 Key,管理起来会很乱。TaoToken 的价值在于:一个 Key 走统一入口,模型切换只改配置不改代码。对智能体这种会频繁调用模型的场景,统一 Key 能省掉大量重复配置。

你需要先拿到两样东西:API Key 和接入地址。Key 在控制台的 API Keys 页面创建,接入地址用https://taotoken.net/api(注意 API 地址不带 UTM 参数,直接写进配置)。创建 Key 时建议按项目命名,比如openclaw-huawei,方便后面排查是哪个环境在消耗。

拿到 Key 后,先别急着写进 OpenClaw,用 curl 单独验证一次,确认 Key 和网络都通。这一步能帮你把“Key 问题”和“OpenClaw 配置问题”分开,后面排障会轻松很多。

curl -s https://taotoken.net/api/v1/models \ -H "Authorization: Bearer sk-你的Key" | head -c 500

如果返回模型列表 JSON,说明 Key 有效、网络可达。如果返回 401,检查 Key 是否复制完整;如果超时,检查 ECS 安全组出方向是否放行 443。

提示:TaoToken 的模型对话入口在 https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=model_chat&utm_campaign=rewrite ,想先试模型效果可以直接在网页里对话,确认模型可用再写进配置。

3. SSH 登录与 nginx 反代准备

3.1 SSH 登录华为云 ECS

假设你已经在华为云创建了 ECS,系统选 Ubuntu 22.04,安全组放行 22 端口。本地终端执行:

ssh -i ~/.ssh/huawei_key.pem root@你的ECS公网IP

登录后先做基础更新,避免后面装 nginx 时依赖冲突:

apt update && apt upgrade -y apt install -y nginx curl jq systemctl enable nginx systemctl start nginx

nginx 装好后,默认监听 80。你可以先用curl -I http://127.0.0.1确认返回 200,说明 nginx 正常。

3.2 配置 nginx 反向代理

OpenClaw 的 Web UI 默认跑在 18789 端口,直接暴露公网不安全。我们用 nginx 做一层反代,把外部请求转到本地 18789,同时加上基础认证头透传。

新建配置文件:

cat > /etc/nginx/sites-available/openclaw <<'EOF' server { listen 80; server_name 你的ECS公网IP; location / { proxy_pass http://127.0.0.1:18789; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; 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_read_timeout 300s; } } EOF ln -sf /etc/nginx/sites-available/openclaw /etc/nginx/sites-enabled/openclaw nginx -t && systemctl reload nginx

proxy_read_timeout 300s很关键,智能体执行任务时可能长时间不返回,默认 60s 会断连。UpgradeConnection头是为了 WebSocket 通信,OpenClaw 的实时日志和任务状态依赖它。

注意:安全组只需放行 80(或你自定义的端口),18789 不要对公网开放。所有外部访问走 nginx 这一层。

4. config.toml 可复制骨架与 TaoToken 接入

OpenClaw 的配置文件通常在~/.openclaw/config.toml。下面这份骨架把模型提供方指向 TaoToken,同时保留 gateway 和日志配置。你可以直接复制,替换 Key 和模型名。

# ~/.openclaw/config.toml [gateway] mode = "local" bind = "127.0.0.1" port = 18789 [gateway.controlUi] allowedOrigins = ["http://你的ECS公网IP", "http://127.0.0.1:18789"] [model] provider = "openai-compatible" baseUrl = "https://taotoken.net/api" apiKey = "sk-你的Key" defaultModel = "claude-opus-4-6" timeout = 300 [model.params] maxTokens = 8192 temperature = 0.7 [log] level = "info" file = "/var/log/openclaw/openclaw.log"

几个参数说明:baseUrl固定写https://taotoken.net/api,不要带路径后缀;defaultModel按你实际可用的模型填,可以先在模型对话页面确认;timeout设 300 秒,和 nginx 的proxy_read_timeout对齐,避免一边断一边等。

创建日志目录并赋权:

mkdir -p /var/log/openclaw chown -R root:root /var/log/openclaw

如果你之前用openclaw onboard生成过配置,建议先备份再覆盖:

cp ~/.openclaw/config.toml ~/.openclaw/config.toml.bak

然后重启 OpenClaw 服务:

openclaw gateway restart

5. 验证请求与成功结果

配置写完后,分三层验证:Key 层、OpenClaw 层、nginx 层。

第一层,直接 curl TaoToken,确认 Key 和模型可用:

curl -s https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer sk-你的Key" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-opus-4-6", "messages": [{"role": "user", "content": "回复 OK"}], "max_tokens": 16 }' | jq -r '.choices[0].message.content'

返回OK说明模型链路通。

第二层,检查 OpenClaw 是否加载了配置:

openclaw config get model.baseUrl openclaw config get model.defaultModel

输出应与你写入的一致。如果还是旧值,说明配置没生效,检查文件路径和重启动作。

第三层,通过 nginx 访问 Web UI:

curl -I http://你的ECS公网IP

返回 200 或 302 都正常。浏览器打开http://你的ECS公网IP,能看到 OpenClaw 控制台即成功。此时在对话框里发一句“列出当前目录文件”,如果模型返回执行结果,说明从 nginx 到 OpenClaw 到 TaoToken 的整条链路都通了。

实测下来,最容易出问题的是allowedOrigins没加公网 IP,导致 Web UI 能打开但接口 403。加上后 reload nginx 即可。

6. 本篇常见错排查

报错一:curl 返回 401 UnauthorizedKey 复制不完整或前后有空格。重新在控制台复制,注意不要带换行。检查config.tomlapiKey是否被引号包裹正确。

报错二:nginx 502 Bad GatewayOpenClaw 没起来或端口不对。执行ss -tlnp | grep 18789看端口是否监听。如果没监听,看日志:

tail -n 50 /var/log/openclaw/openclaw.log

常见原因是config.toml语法错误,TOML 对引号和缩进敏感,用openclaw config validate检查。

报错三:Web UI 打开空白,控制台报 CORSallowedOrigins没包含你访问的地址。把http://你的ECS公网IP加进去,注意协议和端口要完全匹配。改完systemctl reload nginx并重启 OpenClaw。

报错四:模型请求超时检查 nginx 的proxy_read_timeoutconfig.tomltimeout是否都调到 300。另外确认 ECS 安全组出方向放行 443,否则 ECS 无法访问 TaoToken。

报错五:日志文件没生成/var/log/openclaw目录不存在或权限不对。手动创建并确认 OpenClaw 进程有写权限。也可以临时把log.file改成/tmp/openclaw.log测试。

排障时建议按“Key → OpenClaw → nginx”顺序逐层验证,不要一上来就改配置。每层用 curl 或日志确认,能快速定位问题在哪一段。

如果你准备长期在华为云上跑 OpenClaw,建议把模型调用统一走 TaoToken 的 Coding Plan,入口在 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite ,适合智能体这种高频、多步骤的调用场景。接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite ,配置字段有疑问可以直接对照。Key 管理在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewrite ,建议按环境分 Key,方便后续看用量。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询