Ubuntu 服务器部署 OpenClaw:Node.js 环境与 SSH 访问指南(TaoToken 配置篇) 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 的入口在这里控制台创建 Keyhttps://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite创建时建议给 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_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite前置准备就这些一个 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。先更新索引并装 curlsudo 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.xnode -v npm -v国内服务器建议切 npm 镜像减少依赖安装超时npm config set registry https://registry.npmmirror.com npm config get registry3.2 OpenClaw 安装与 PATH 修复用官方脚本安装curl -fsSL https://openclaw.ai/install.sh | bash安装完如果提示PATH missing npm global bin dir: /home/ubuntu/.npm-global/bin说明全局 bin 目录没进环境变量。把它写进~/.bashrcecho 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/apiKey 填你创建的那串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_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite实测下来最容易出问题的是第二步的模型通道验证。因为 OpenClaw 的报错信息有时候不够直白比如local proxy failed这种看着像网络问题其实是 Base URL 写错。下面单独列一节常见错误。5. 本篇常见错排查401、local proxy failed、reading choices、OAuth这一节按真实报错对照每条给原因和修法。你遇到问题时直接搜报错关键词。401 UnauthorizedKey 无效或没带上。检查 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-compatibleModel ID 是否拼写正确。如果 Model ID 写成了不存在的模型有些网关会返回错误结构也会触发这个报错。OAuth 相关报错如果你在配置里误开了 OAuth 模式而 TaoToken 用的是 API Key 模式就会报 OAuth 失败。把 provider 配置里的 OAuth 相关字段删掉只保留api_key。OpenClaw 的 provider 段不需要 OAuth 配置。command not found: openclawPATH 没配好。回到 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 直接测 APIUI 层看隧道。一层层排除比盲目改配置快得多。6. 长期运行与后续接入把 OpenClaw 当常驻助手用跑通之后下一步是让它稳定常驻。OpenClaw 的 gateway 可以用 systemd 托管也可以先用nohup简单后台跑。systemd 的好处是开机自启、崩溃重启。创建一个 service 文件sudo nano /etc/systemd/system/openclaw.service内容如下路径按你的实际用户名改[Unit] DescriptionOpenClaw Gateway Afternetwork.target [Service] Typesimple Userubuntu ExecStart/home/ubuntu/.npm-global/bin/openclaw gateway Restarton-failure RestartSec5 [Install] WantedBymulti-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_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite最后说一个实用技巧把常用的模型 ID 和对应的 Base URL 记在一个小抄里换模型时只改 config.toml 的model字段不用动其他配置。这样你在 Ubuntu 服务器上的 OpenClaw 就是一个随时可切换模型的常驻助手SSH 隧道一开就能用。