☰
Ubuntu 服务器部署 OpenClaw:Node.js 环境与 SSH 访问指南(TaoToken 配置篇)
2026/10/1 20:35:08 网站建设 项目流程

1. Ubuntu 服务器上跑 OpenClaw,为什么先卡在 Node.js 和 SSH 这两关

OpenClaw 是一个跑在终端里的 AI 智能体框架,它能调用 Shell 工具、读写文件、执行任务,适合放在一台长期在线的 Ubuntu 服务器上当“常驻助手”。但很多人第一次部署时会发现:明明照着文档敲了命令,openclaw却提示 command not found;或者服务在服务器上跑起来了,本地浏览器却打不开 Web UI。这两个坑,一个出在 Node.js 全局路径,一个出在 SSH 访问方式。

这篇就按真实部署链路走一遍:从 Ubuntu 的 Node.js LTS 环境准备,到 OpenClaw 安装与 PATH 修复,再到 SSH 免密登录和端口隧道,最后把模型通道统一接到 TaoToken 的 Key/API 上。目标很明确——你在自己的服务器上能稳定跑起来,并且知道每一步为什么这么做。

适合谁看:手里有一台 Ubuntu 22.04/24.04 的云服务器或本地虚拟机,想部署 OpenClaw 但被环境问题绊住的人;以及已经在用 OpenClaw,想把模型调用统一到一个 API 通道、方便切换模型的人。全程命令可复制,配置片段可直接改路径使用。

先说结论性的判断:OpenClaw 本身不复杂,复杂的是“环境边界”——Node.js 版本、npm 全局 bin 目录、SSH 隧道、模型 Base URL。把这四样理顺,后面基本不会出问题。下面按顺序来。

2. TaoToken 前置准备:统一 Key 与 API 通道,避免多模型切换混乱

OpenClaw 支持接入多种模型提供商,但如果你每个模型都单独配一个 Key、单独记一个 Base URL,配置会越来越乱。TaoToken 的作用是把这些统一成一个 API 通道:一个 Key、一个 Base URL,模型通过 Model ID 区分。这样 OpenClaw 的 config.toml 里只需要维护一份 provider 配置。

你需要先拿到两样东西:API Key 和 Base URL。Key 在控制台的 API Keys 页面创建,Base URL 固定为https://taotoken.net/api(注意不要加多余路径,OpenClaw 会自己拼接/v1/...)。创建 Key 的入口在这里:

控制台创建 Key:https://taotoken.net/console/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewrite

创建时建议给 Key 起一个能识别的名字,比如openclaw-ubuntu,方便以后在控制台里区分是哪台机器在用。Key 只在创建时完整显示一次,复制后先存到安全的地方,后面写进 config.toml 要用。

模型 ID 怎么选?OpenClaw 里常用的几个:claude-sonnet-4-5、gpt-4o、deepseek-chat。如果你主要做代码和 Agent 任务,Claude 系列的工具调用比较稳;如果只是验证连通性,先用一个便宜的模型跑通流程,再换。Model ID 要和你实际调用的模型一致,写错了会返回 404 或 model not found。

这里有个容易忽略的点:TaoToken 的 Base URL 是https://taotoken.net/api,但有些客户端要求你填到/v1结尾。OpenClaw 的 provider 配置里,Base URL 填到/api即可,它内部会补/v1/chat/completions。如果你填成https://taotoken.net/api/v1,反而会变成/api/v1/v1/...,直接 404。这个坑我在第一次配的时候踩过,报错是404 page not found,排查了半天才发现是路径重复。

另外,如果你打算长期在服务器上跑 Agent 任务,建议了解一下 Coding Plan,它更适合高频调用场景:

Coding Plan 说明:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite

前置准备就这些:一个 Key、一个 Base URL、一个 Model ID。三件套齐了,下面开始装环境。

3. 可复制配置:Node.js 环境、config.toml 骨架与 SSH 免密登录

这一节是全文的核心操作区,分三块:Node.js 安装、OpenClaw 的 config.toml 配置、SSH 免密登录。每块都给完整命令或配置片段,路径按 Ubuntu 默认用户ubuntu写,你换成自己的用户名即可。

3.1 Node.js LTS 安装与 npm 镜像切换

Ubuntu 官方源的 Node.js 版本偏旧,OpenClaw 需要 Node 18 以上,推荐用 NodeSource 装 LTS。先更新索引并装 curl:

sudo apt update sudo apt install -y curl

然后添加 NodeSource 仓库并安装:

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - sudo apt-get install -y nodejs

验证版本,正常会看到 v20.x 或 v22.x:

node -v npm -v

国内服务器建议切 npm 镜像,减少依赖安装超时:

npm config set registry https://registry.npmmirror.com npm config get registry

3.2 OpenClaw 安装与 PATH 修复

用官方脚本安装:

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

安装完如果提示PATH missing npm global bin dir: /home/ubuntu/.npm-global/bin,说明全局 bin 目录没进环境变量。把它写进~/.bashrc:

echo 'export PATH="/home/ubuntu/.npm-global/bin:$PATH"' >> ~/.bashrc source ~/.bashrc openclaw --version

如果你用的是 zsh,把.bashrc换成.zshrc。这一步不做,新开终端就会 command not found。

3.3 config.toml 骨架(TaoToken 通道)

OpenClaw 的配置文件默认在~/.openclaw/config.toml。下面是一个可直接改用的骨架,重点是 provider 段:

# ~/.openclaw/config.toml [gateway] host = "127.0.0.1" port = 18789 [provider.taotoken] type = "openai-compatible" base_url = "https://taotoken.net/api" api_key = "sk-你的TaoTokenKey" model = "claude-sonnet-4-5" [agent] default_provider = "taotoken"

三件套对应关系:Base URL 填https://taotoken.net/api,Key 填你创建的那串,Model ID 填claude-sonnet-4-5或你选的模型。type用openai-compatible,因为 TaoToken 的接口兼容 OpenAI 格式。

3.4 SSH 免密登录配置

免密登录分两步:本地生成密钥、把公钥传到服务器。本地终端执行:

ssh-keygen -t ed25519 -C "openclaw-server"

一路回车,默认生成在~/.ssh/id_ed25519。然后把公钥推上去:

ssh-copy-id ubuntu@你的服务器IP

之后登录就不需要密码了。如果你要建端口隧道访问 Web UI,用这条:

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

保持这个终端开着,本地浏览器访问http://127.0.0.1:18789就能看到 OpenClaw 界面。这条隧道相当于把服务器的本地端口“搬”到你本地,既不用开放公网端口,也不用改防火墙。

4. 验证请求:从 curl 到 Web UI 的连通性检查

配置写完不代表能跑,得一步步验证。顺序是:先验 Node 环境,再验 OpenClaw 进程,再验模型通道,最后验 Web UI。

第一步,确认 OpenClaw 能启动。在服务器上执行:

openclaw gateway

如果看到监听127.0.0.1:18789的日志,说明网关起来了。另开一个终端,用 curl 测本地响应:

curl -s http://127.0.0.1:18789/health

返回{"status":"ok"}之类的 JSON 就对了。如果连接被拒,说明 gateway 没起来,回去看日志。

第二步,验证模型通道。OpenClaw 提供了一个测试命令,可以直接发一条消息:

openclaw chat --provider taotoken --message "回复:连通成功"

如果返回模型输出,说明 Key、Base URL、Model ID 三件套都对。如果报 401,是 Key 错了;报 404,多半是 Base URL 路径重复;报reading choices,是返回体格式不对,检查type是否写成了openai-compatible。

第三步,验证 Web UI。本地建好 SSH 隧道后,浏览器打开http://127.0.0.1:18789。在界面里发一条“列出当前目录文件”,观察 OpenClaw 是否调用 Shell 工具并返回结果。这一步能跑通,说明 Agent 的工具调用链路也正常。

如果你想在浏览器里直接对比不同模型的输出,可以用模型对话页面快速验证同一个 prompt 在不同 Model ID 下的表现:

模型对话验证:https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite

实测下来,最容易出问题的是第二步的模型通道验证。因为 OpenClaw 的报错信息有时候不够直白,比如local proxy failed这种,看着像网络问题,其实是 Base URL 写错。下面单独列一节常见错误。

5. 本篇常见错排查:401、local proxy failed、reading choices、OAuth

这一节按真实报错对照,每条给原因和修法。你遇到问题时直接搜报错关键词。

401 Unauthorized:Key 无效或没带上。检查 config.toml 里api_key是否完整,有没有多余空格。TaoToken 的 Key 以sk-开头,复制时别漏字符。如果 Key 是对的还报 401,去控制台确认这个 Key 是否被禁用或删除。

local proxy failed:这个报错在 OpenClaw 里通常不是代理问题,而是 Base URL 不可达或路径错误。先确认base_url = "https://taotoken.net/api",不要写成/api/v1。然后在服务器上直接 curl 测一下:

curl -s -o /dev/null -w "%{http_code}" https://taotoken.net/api/v1/models -H "Authorization: Bearer sk-你的Key"

返回 200 说明通道通,返回 404 就是路径问题。

reading choices 相关报错:一般是返回体不是 OpenAI 格式,客户端解析choices字段失败。检查type是否为openai-compatible,Model ID 是否拼写正确。如果 Model ID 写成了不存在的模型,有些网关会返回错误结构,也会触发这个报错。

OAuth 相关报错:如果你在配置里误开了 OAuth 模式,而 TaoToken 用的是 API Key 模式,就会报 OAuth 失败。把 provider 配置里的 OAuth 相关字段删掉,只保留api_key。OpenClaw 的 provider 段不需要 OAuth 配置。

command not found: openclaw:PATH 没配好。回到 3.2 节,确认~/.npm-global/bin已加入 PATH,并且source过配置文件。新开终端再试。

SSH 隧道断开后 Web UI 打不开:隧道终端关掉后端口映射就没了。重新执行ssh -L 18789:127.0.0.1:18789 ubuntu@服务器IP,保持窗口开着。如果想后台常驻,可以用-N -f参数,但调试阶段建议前台开着方便看日志。

Gateway 离线:Web UI 显示离线,但 curl 本地能通,多半是隧道没建好或端口不一致。确认隧道命令里的端口和 config.toml 里的port一致,都是 18789。

排查的核心思路:先分层,再定位。Node 层看版本和 PATH,进程层看 gateway 日志,通道层用 curl 直接测 API,UI 层看隧道。一层层排除,比盲目改配置快得多。

6. 长期运行与后续接入:把 OpenClaw 当常驻助手用

跑通之后,下一步是让它稳定常驻。OpenClaw 的 gateway 可以用 systemd 托管,也可以先用nohup简单后台跑。systemd 的好处是开机自启、崩溃重启。创建一个 service 文件:

sudo nano /etc/systemd/system/openclaw.service

内容如下,路径按你的实际用户名改:

[Unit] Description=OpenClaw Gateway After=network.target [Service] Type=simple User=ubuntu ExecStart=/home/ubuntu/.npm-global/bin/openclaw gateway Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target

然后启用:

sudo systemctl daemon-reload sudo systemctl enable openclaw sudo systemctl start openclaw sudo systemctl status openclaw

这样服务器重启后 OpenClaw 会自动起来,SSH 隧道建好就能直接用。

如果你后续要接 Claude Code 或做更复杂的 Agent 编排,接入文档里有完整的 Base URL、Key、Model ID 配置说明,路径和字段名都列清楚了:

接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite

最后说一个实用技巧:把常用的模型 ID 和对应的 Base URL 记在一个小抄里,换模型时只改 config.toml 的model字段,不用动其他配置。这样你在 Ubuntu 服务器上的 OpenClaw 就是一个随时可切换模型的常驻助手,SSH 隧道一开就能用。

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

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

立即咨询