☰
云主机 Ubuntu 24 部署 OpenClaw 全流程:TaoToken 配置避坑与 systemd 守护实战
2026/9/25 11:31:07 网站建设 项目流程

1. 云主机 Ubuntu 24 部署 OpenClaw:从 SSH 到 systemd 常驻的完整链路

OpenClaw 是一个可以常驻在服务器上、通过聊天通道接收指令并调用大模型完成任务的智能体框架。它适合想把 AI 助手从本机搬到云主机、实现 7×24 小时在线的人,也适合需要给团队搭一个统一入口的开发者。我这次用的是 Ubuntu 24 的云主机,通过 SSH 远程操作,核心目标有两个:一是把 OpenClaw 的 API 通道配置跑通,二是用 systemd 把 gateway 进程守护起来,避免 SSH 断开后服务跟着挂掉。

很多人第一次装 OpenClaw 会卡在两个地方:安装脚本跑完了,但 gateway 服务起不来;或者服务起来了,但模型请求发不出去,报鉴权或通道错误。前者多半是 systemd user 实例和运行目录的问题,后者通常是 API Key 和 base_url 没配对。这篇就按真实操作顺序,把 Ubuntu 24 上的安装、TaoToken 统一 Key 接入、config.toml 骨架、systemd 守护和验证命令一次讲清楚,你照着敲基本能跑通。

需要提前说明的是,云主机建议至少 4GB 内存,并且加不低于 2GB 的 swap。2GB 内存的机器我在配置环节反复遇到内存被打爆的情况,进程直接被 OOM 杀掉,所以别在这上面省。SSH 连接也建议延长保活时间,或者直接用 tmux,防止安装中途断线导致服务状态不完整。

2. 前置准备:TaoToken 统一 Key 与运行环境

OpenClaw 本身不绑定某一家模型,它通过 OpenAI 兼容的接口去请求模型。这里我用 TaoToken 作为统一接入层,一个 Key 就能覆盖多种模型,省去在多个平台之间来回切换和分别配置的麻烦。对 OpenClaw 来说,它只需要一个 base_url 和一个 api_key,剩下的模型选择在请求时指定即可。

TaoToken 的 API 地址是https://taotoken.net/api,注意这个地址不带任何查询参数,直接作为 OpenAI 兼容的 base_url 使用。Key 的获取在控制台的 API Keys 页面完成,建议单独建一个给 OpenClaw 用的 Key,方便后续轮换和排查。如果你还没建 Key,可以先到控制台生成一个,复制出来备用。

在云主机上,先确认基础环境。Ubuntu 24 默认的软件源里 Node.js 版本可能偏旧,OpenClaw 对 Node 版本有要求,建议用 NodeSource 或 nvm 装一个较新的 LTS。下面这几条先跑一遍,确认版本和内存情况:

node -v npm -v free -h swapon --show

如果swapon --show是空的,说明还没开 swap,补一个 2GB 的交换文件:

fallocate -l 2G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile echo '/swapfile none swap sw 0 0' >> /etc/fstab

内存和 swap 确认没问题后,再开始装 OpenClaw。安装脚本会拉取依赖并初始化配置,过程中如果 SSH 断了,重连后可能处于半完成状态,所以前面说的 tmux 或保活参数很有必要。

3. 可复制配置:安装 OpenClaw 与 config.toml 骨架

先用带保活参数的 SSH 登录,避免长时间无操作被断开:

ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=60 root@你的服务器IP

登录后建议开一个 tmux 会话再操作:

tmux new -s openclaw

然后执行官方安装脚本:

curl -fsSL https://openclaw.ai/install.sh | bash

安装完成后会自动进入配置向导。如果中途退出了,可以用openclaw onboard重新拉起。向导里会让你选模型提供方、填 API Key、选连接通道和 skills。模型这里选 OpenAI 兼容类型,base_url 填https://taotoken.net/api,api_key 填你在 TaoToken 控制台生成的 Key。skills 环节建议先只装blucli和clawhub这两个管理类技能,其他等 gateway 稳定运行后再补,减少启动依赖出问题的概率。

配置写完后,核心文件在~/.openclaw/openclaw.json,但为了 systemd 守护和后续维护,我更推荐用一份明确的config.toml骨架来管理关键参数。下面这份可以直接改:

# ~/.openclaw/config.toml [gateway] port = 18789 mode = "local" bind = "loopback" [gateway.auth] mode = "token" token = "替换成你自己的gateway访问token" [model] provider = "openai-compatible" base_url = "https://taotoken.net/api" api_key = "替换成你的TaoToken Key" default_model = "gpt-4o-mini" [skills] enabled = ["blucli", "clawhub"]

这里base_url一定不要写成带/v1之外多余路径的形式,TaoToken 的兼容层会自己处理路由。api_key就是统一 Key,换模型时只改default_model即可,不用动 Key。gateway 的 token 是本地访问用的,和模型 Key 是两回事,别混。

4. 验证请求:systemd 守护与 gateway 启动检查

配置写好后,先手动跑一次 gateway,确认模型通道是通的:

openclaw gateway start --foreground

前台运行时观察日志,如果出现模型请求相关的鉴权错误,多半是api_key或base_url写错。确认能正常响应后,Ctrl+C 停掉,改用 systemd 守护。Ubuntu 24 上 root 用户直接跑 systemd user 实例容易遇到systemd not installed或systemctl is-enabled unavailable,所以先把运行目录和 service 文件准备好:

OPENCLAW_BIN="$(command -v openclaw)" echo "$OPENCLAW_BIN" mkdir -p /run/user/0 chmod 700 /run/user/0 export XDG_RUNTIME_DIR=/run/user/0 mkdir -p /root/.config/systemd/user

然后写 service 文件,注意WorkingDirectory和OPENCLAW_HOME要指向真实目录,否则 gateway 找不到配置:

cat >/root/.config/systemd/user/openclaw-gateway.service <<EOF [Unit] Description=OpenClaw Gateway (user) After=network.target [Service] Type=simple Environment=XDG_RUNTIME_DIR=/run/user/0 Environment=OPENCLAW_HOME=/root/.openclaw WorkingDirectory=/root/.openclaw ExecStart=$OPENCLAW_BIN gateway start Restart=always RestartSec=2 [Install] WantedBy=default.target EOF

加载并启动:

systemctl --user daemon-reload systemctl --user enable --now openclaw-gateway.service systemctl --user status openclaw-gateway.service --no-pager -l

如果状态不是 active,先看日志:

journalctl --user -u openclaw-gateway.service -n 50 --no-pager

确认端口监听:

ss -lntp | grep 18789

看到监听在127.0.0.1:18789就说明 gateway 起来了。此时可以断开 SSH 重连,再查一次状态,验证 systemd 守护是否独立于会话。重连后如果还是 active,说明守护生效。

本地访问时,因为绑定的是 loopback,需要建 SSH 隧道:

ssh -N -L 18789:127.0.0.1:18789 root@你的服务器IP

然后本地浏览器打开http://127.0.0.1:18789/#token=你的gateway token,能看到 Web 界面并正常对话,就说明模型通道和 gateway 都通了。

5. 本篇常见错排查:gateway 起不来与模型请求失败

第一个高频错误是Gateway service: systemd not installed。这通常是因为 systemd user 实例没有正确初始化,或者XDG_RUNTIME_DIR没设置。解决办法就是上面那套:手动创建/run/user/0,导出XDG_RUNTIME_DIR,再写 service 文件。如果还不行,用openclaw gateway install --force重新生成一次 service,再daemon-reload。

第二个是systemctl is-enabled unavailable: Command failed。这个多半是 service 文件路径不对,或者WantedBy写成了multi-user.target而不是default.target。user 实例必须用default.target,改完记得daemon-reload。

第三个是 gateway 起来了但模型请求 401 或 404。401 一般是 TaoToken Key 填错或过期,去控制台重新生成一个换上;404 多半是base_url写成了https://taotoken.net/api/v1之外的多余路径,或者模型名写错。用curl直接测一下通道:

curl https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer 你的TaoToken Key" \ -H "Content-Type: application/json" \ -d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"ping"}]}'

能返回内容说明 Key 和地址没问题,问题就在 OpenClaw 的配置里。第四个是内存不足导致进程被杀,journalctl里会看到 OOM 记录,回去加 swap 或升配内存即可。

6. 接入文档与后续通道扩展

gateway 稳定运行后,下一步通常是把它接到飞书、钉钉这类聊天通道上,实现手机随时发指令。OpenClaw 的通道接入不需要把 gateway 暴露到公网,飞书这类平台提供长连接模式,由 OpenClaw 主动连出去保持会话,安全性更好。具体的长连接配置和事件订阅步骤,可以对照接入文档来操作,文档里有各通道的参数说明和示例。

如果你在配 Key 或接通道时遇到鉴权问题,直接到 API Keys 页面核对 Key 状态,再翻一遍接入文档里的 base_url 和请求头示例,基本能定位。想先验证模型是否正常,可以用模型对话页面发一条测试消息,确认通道通了再回到 OpenClaw 里配。长期跑编码类或 Agent 类任务的话,Coding Plan 的额度模型更适合持续调用,比按次计费省心。把 gateway 用 systemd 守护好,再配上统一 Key,这套组合跑起来之后,剩下的就是按需扩展 skills 和通道了。

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

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

立即咨询