资讯详情

OpenClaw部署教程:云服务器搭建详细步骤与TaoToken接入

📅 2026/10/4 12:11:37 | 华诺云谱 👁 阅读
OpenClaw部署教程:云服务器搭建详细步骤与TaoToken接入
1. 为什么要把 OpenClaw 放到 Ubuntu 云服务器上跑OpenClaw 是一个可自托管的 AI Agent 网关能对接多种大模型通道把对话、工具调用、插件编排统一收口到一个 Web 界面里。它适合谁适合想让 AI 助手长期在线、又不想把数据交给第三方托管的开发者。本地跑通只是第一步真正要让它 7×24 小时稳定服务就得放到云服务器上。我试过在本地笔记本上跑 OpenClaw合上盖子就断线换个网络环境端口就变团队里其他人根本连不上。放到云上之后这些问题一次性解决固定公网 IP、稳定带宽、随时可扩容。但云上部署又是另一回事——网络、安全、性能每个环节都有坑。这篇教程面向在 Ubuntu 云服务器上从零搭建 OpenClaw 的开发者重点讲两件事一是用 Nginx 做反向代理把服务安全地暴露出去二是通过 TaoToken 统一 Key/API 通道对接模型能力。我会给出可直接复制的 Nginx 配置片段、环境变量模板和 curl 验证命令最后附一份服务启动后的逐项检查清单。阿里云、腾讯云、华为云的 Ubuntu 实例都适用道理是通用的。硬件门槛先说清楚官方推荐 2 核 4G 起步这是底线。低于这个配置并发请求一多就卡。预算够的话直接上 4 核 8G跑 AI 插件或多 Agent 时内存会舒服很多。系统盘 40GB 够用再挂一块 100GB 左右的数据盘专门存 OpenClaw 数据重装系统不丢数据。带宽至少 3Mbps5Mbps 更稳。2. 部署前的系统初始化与 TaoToken 通道准备拿到服务器后别急着装 OpenClaw先把系统基础工作做扎实。这一步做得好后面排障能省一半时间。先更新系统并创建专用用户。不建议直接用 root 跑 OpenClaw专用用户权限更清晰sudo apt update sudo apt upgrade -y sudo useradd -m -s /bin/bash openclaw sudo passwd openclaw sudo usermod -aG sudo openclaw接着配置防火墙。云服务器有两层防火墙系统层的 ufw 和云厂商控制台的安全组两个都要放行少一个外面都访问不到sudo ufw allow 22/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable注意 8080 端口不要对公网开放我们后面用 Nginx 反代到本地 8080只让 Nginx 访问它。然后是 TaoToken 通道准备。OpenClaw 要调用大模型传统做法是每个模型厂商单独申请 Key、单独配 Base URL管理起来很碎。TaoToken 提供统一 Key/API 通道一个 Key 走通多个模型Base URL 统一为https://taotoken.net/api。你需要在 TaoToken 控制台创建一个 API Key后面写进 OpenClaw 的环境变量里。创建 Key 的入口在控制台的 API Keys 页面登录后新建即可。拿到 Key 之后先别急着填进配置用 curl 单独验证一下通道是否通curl https://taotoken.net/api/v1/models \ -H Authorization: Bearer sk-你的Key返回模型列表就说明 Key 有效、通道正常。这一步单独验证很重要能把「Key 问题」和「OpenClaw 配置问题」提前隔离开后面排障时不用两头猜。安装基础依赖配好国内镜像加速sudo apt install -y curl wget git unzip build-essential curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt install -y nodejs npm config set registry https://registry.npmmirror.com数据盘单独挂载和系统盘分开sudo mkfs.ext4 /dev/vdb sudo mkdir -p /data/openclaw sudo mount /dev/vdb /data/openclaw echo /dev/vdb /data/openclaw ext4 defaults 0 0 | sudo tee -a /etc/fstab sudo chown -R openclaw:openclaw /data/openclaw到这里系统层和通道层都准备好了可以进入 OpenClaw 本体安装。3. 可复制的 OpenClaw 配置与 Nginx 反代片段这一节是全文的核心所有片段都可以直接复制改域名使用。先装 OpenClaw 本体sudo mkdir -p /opt/openclaw sudo chown openclaw:openclaw /opt/openclaw cd /opt/openclaw wget https://releases.openclaw.com/latest/openclaw-linux-x64.tar.gz tar -xzf openclaw-linux-x64.tar.gz npm install --production ./openclaw init初始化时端口填 8080数据目录指向/data/openclaw。接下来是环境变量模板。OpenClaw 读取同目录下的.env文件把 TaoToken 的 Base URL、Key 和默认模型写进去# /opt/openclaw/.env NODE_ENVproduction PORT8080 DATA_DIR/data/openclaw # TaoToken 统一通道 OPENAI_BASE_URLhttps://taotoken.net/api OPENAI_API_KEYsk-你的TaoTokenKey DEFAULT_MODELclaude-sonnet-4-20250514 # 日志 LOG_LEVELinfo这里三件套要写全Base URL 是https://taotoken.net/apiKey 是控制台创建的那串Model ID 按你实际要用的模型填。三者缺一请求就会报 401 或 model not found。配置 systemd 服务让 OpenClaw 开机自启、崩溃自动重启# /etc/systemd/system/openclaw.service [Unit] DescriptionOpenClaw Gateway Service Afternetwork.target [Service] Typesimple Useropenclaw Groupopenclaw WorkingDirectory/opt/openclaw EnvironmentFile/opt/openclaw/.env ExecStart/usr/bin/node /opt/openclaw/server.js Restartalways RestartSec10 StandardOutputsyslog StandardErrorsyslog [Install] WantedBymulti-user.targetsudo systemctl daemon-reload sudo systemctl enable openclaw sudo systemctl start openclaw sudo systemctl status openclaw看到active (running)就说明服务起来了。然后是 Nginx 反向代理配置。直接暴露 8080 不安全用 Nginx 挡在前面顺便处理 WebSocket 升级和长连接超时# /etc/nginx/sites-available/openclaw server { listen 80; server_name your-domain.com; location / { proxy_pass http://127.0.0.1:8080; 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_cache_bypass $http_upgrade; proxy_read_timeout 86400; proxy_send_timeout 86400; } gzip on; gzip_types text/plain text/css application/json application/javascript; gzip_min_length 1000; }sudo ln -s /etc/nginx/sites-available/openclaw /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginxproxy_read_timeout 86400这行别省Agent 长任务动辄几分钟默认 60 秒会直接断流。配好之后申请 SSL 证书sudo apt install -y certbot python3-certbot-nginx sudo certbot --nginx -d your-domain.comcertbot 会自动改写 Nginx 配置加上 443 监听和证书路径之后通过https://your-domain.com访问全程加密。4. 验证请求与成功结果逐项检查配置写完不代表跑通必须逐项验证。下面这份清单按顺序执行任何一项失败都能快速定位到具体环节。第一项确认 OpenClaw 进程在跑sudo systemctl status openclaw curl -s http://127.0.0.1:8080/health健康检查返回{status:ok}说明本地服务正常。第二项验证 TaoToken 通道从服务器侧可达curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的TaoTokenKey \ -H Content-Type: application/json \ -d { model: claude-sonnet-4-20250514, messages: [{role: user, content: ping}] }返回带choices字段的 JSON 就说明通道通了。如果这里报 401问题在 Key报 model not found问题在 Model ID。第三项验证 Nginx 反代链路curl -I https://your-domain.com/health返回 200 且带server: nginx头说明从公网到 Nginx 到 OpenClaw 整条链路打通。第四项验证 WebSocket 升级。OpenClaw 的实时对话依赖 WebSocket用 curl 模拟升级请求curl -i -N \ -H Connection: Upgrade \ -H Upgrade: websocket \ -H Sec-WebSocket-Version: 13 \ -H Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ \ https://your-domain.com/ws返回101 Switching Protocols说明升级成功。如果返回 400 或 426回去检查 Nginx 里那两行Upgrade和Connection头有没有写对。第五项在浏览器打开https://your-domain.com登录后发一条消息确认能收到模型回复。这一步是端到端验证前面四项都过了这步基本不会出问题。第六项重启服务器后确认服务自启sudo reboot # 重连后 sudo systemctl status openclawenabled状态下重启后应自动拉起如果没起来检查systemctl is-enabled openclaw的输出。5. 部署常见报错排查401、local proxy failed 与 OAuth部署过程中最容易卡住的几个报错我按出现频率排一下对照着查。401 Unauthorized。这个最常见来源有三个Key 写错、Key 前后有空格、环境变量没被读到。先确认.env文件里OPENAI_API_KEY没有多余空格和引号再确认 systemd 的EnvironmentFile路径指向正确。改完.env必须sudo systemctl restart openclaw光 reload 不生效。用第 4 节的 curl 单独测通道能快速判断是 Key 问题还是 OpenClaw 读取问题。local proxy failed / connection refused。这个报错通常出现在 OpenClaw 启动时意思是它连不上配置的 Base URL。检查两点一是OPENAI_BASE_URL是不是写成了https://taotoken.net/api注意结尾不要多加/v1OpenClaw 会自己拼路径二是服务器出网是否正常curl -I https://taotoken.net/api测一下。如果服务器在受限网络环境出网被拦任何外部 API 都调不通。reading choices of undefined。这个报错说明请求发出去了但返回体结构不对代码去读choices时拿到 undefined。根因一般是 Model ID 写错或者用了通道不支持的模型名。回到 TaoToken 控制台确认模型列表把DEFAULT_MODEL改成列表里存在的 ID。另一个可能是返回了错误 JSON比如{error:...}但代码没做错误分支直接去读choices。看 OpenClaw 日志里打印的原始响应体就能确认sudo journalctl -u openclaw -n 100 --no-pagerOAuth 相关报错。如果你用的是需要 OAuth 授权的模型通道报错通常长这样OAuth token expired或invalid_grant。这类问题多半是授权过期或回调地址不匹配。用 TaoToken 统一 Key 通道可以绕开大部分 OAuth 流程因为它是标准 Bearer Token 鉴权不需要走授权跳转。如果你确实需要 OAuth确认回调 URL 填的是https://your-domain.com/callback且 Nginx 没有拦截这个路径。502 Bad Gateway。Nginx 报 502 说明它连不上后端 8080。先curl http://127.0.0.1:8080/health确认 OpenClaw 活着再看sudo journalctl -u openclaw有没有崩溃日志。常见原因是 OpenClaw 启动时读.env失败直接退出或者端口被占用。too many open files。高并发时出现调大文件描述符限制sudo tee -a /etc/security/limits.conf EOF openclaw soft nofile 65536 openclaw hard nofile 65536 EOF改完重启服务生效。排障的核心思路是分层隔离先确认 OpenClaw 本地活着再确认通道可达最后确认 Nginx 链路通。每一层用对应的 curl 命令单独测不要一上来就怀疑最外层。6. 长期运行与统一通道的接入建议服务跑起来只是开始长期稳定运行还需要几件事做到位。备份要自动化。写个脚本每天凌晨打包数据目录只保留最近 7 天#!/bin/bash BACKUP_DIR/data/backups DATE$(date %Y%m%d_%H%M%S) mkdir -p $BACKUP_DIR tar -czf $BACKUP_DIR/openclaw_$DATE.tar.gz /data/openclaw find $BACKUP_DIR -name *.tar.gz -mtime 7 -delete加到 crontab0 3 * * * /opt/openclaw/backup.sh。Swap 建议开 2G 做缓冲4G 内存跑多 Agent 时容易吃紧sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo /swapfile none swap sw 0 0 | sudo tee -a /etc/fstab关于模型通道我的建议是长期项目直接用 TaoToken 统一 Key/API 通道而不是每个模型厂商单独配。原因很实际一是 Key 管理集中换模型不用改代码只改一个环境变量二是计费和用量在一个面板里看排查成本低三是通道层做了统一鉴权省掉各家 OAuth 流程的适配工作。接入文档在 https://taotoken.net/api 有完整说明模型对话入口可以直接在控制台试跑确认模型 ID 和返回格式后再写进 OpenClaw 配置。如果你后面要加负载均衡或多实例Nginx 配置稍作调整就行把proxy_pass指向 upstream 组即可架构本身已经具备横向扩展基础。日常维护就是定期apt upgrade、看日志、确认备份在跑这三件事。最后给一个实用技巧把第 4 节的验证清单写成一个 shell 脚本每次改完配置跑一遍比手动逐条敲命令快得多也不容易漏项。部署这件事可重复的验证流程比一次成功更有价值。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑