ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

服务器上跑 OpenClaw:用 tmux 守护 node 进程并配 TaoToken 统一 Key

服务器上跑 OpenClaw:用 tmux 守护 node 进程并配 TaoToken 统一 Key 1. 无图形界面服务器上跑 OpenClaw 的真实痛点很多人第一次在云服务器上部署 OpenClaw习惯性地直接node openclaw.mjs gateway然后关掉 SSH 窗口结果第二天发现进程没了。这不是 OpenClaw 的问题而是 Linux 会话机制决定的SSH 断开时挂在该会话下的前台进程会收到 SIGHUP 信号默认行为就是终止。你如果没有用nohup、systemd或者tmux这类工具托管进程必然被杀。另一个高频坑是环境变量。OpenClaw 依赖 Node 运行时而 Node 通常是通过 nvm 安装的nvm 的初始化写在~/.bashrc里。tmux 新建窗口时如果没执行source ~/.bashrcnode命令直接报command not found。我见过太多人在这一步卡住以为是 OpenClaw 装错了其实是 shell 环境没加载。第三个痛点是模型请求的 endpoint 和 Key 管理。OpenClaw 默认配置里模型通道是分散的每个 provider 一套 Key改起来要翻好几个文件。如果你同时用 Claude、GPT 或者国产模型Key 散落各处轮换一次要改半天。把请求统一收敛到一个通道是长期跑下去必须做的事。这篇内容面向的是手上有一台无图形界面的 Linux 服务器Ubuntu/Debian/CentOS 都行已经装好 Node 和 OpenClaw想让它稳定常驻、并且把模型请求统一走一个 Key 通道的人。全程用 tmux 守护 node 进程用 vim 改配置用 curl 验证 Key 是否生效。每一步都能直接复制执行。先说清楚 OpenClaw 是什么它是一个可自托管的 AI Agent 网关跑起来后监听本地 WebSocket 端口接收 agent 请求、转发到模型通道、再把结果回传。适合谁适合想让 AI Agent 长期在线、又不想把请求散落到多个平台的人。下面从 tmux 会话开始一步步搭起来。2. TaoToken 统一 Key 通道的前置准备在动 OpenClaw 配置之前先把模型请求的出口定下来。我试过把 Key 写在多个 provider 配置里后来发现维护成本太高改成统一通道后清爽很多。TaoToken 在这里扮演的角色就是你只需要一个 Base URL 和一个 API Key就能把 OpenClaw 的模型请求转发出去不用在每个 provider 里单独配。前置准备分三步。第一步拿到 API Key。访问 https://taotoken.net/api-keys 创建注意这个页面是控制台里的 Key 管理入口创建后复制保存Key 只显示一次。第二步确认 Base URL。TaoToken 的 API 入口是https://taotoken.net/api注意这个地址不带任何查询参数配置里直接写这个。第三步确认你要用的 Model ID。不同模型对应不同 ID比如 Claude 系列、GPT 系列各有自己的标识具体在文档里查https://taotoken.net/doc。这里要强调一个概念Base URL 和 Model ID 是两回事。Base URL 决定请求发到哪个网关Model ID 决定网关把请求路由到哪个具体模型。很多人配错就是把 Model ID 写成了 URL或者把 URL 末尾多加了/v1导致路径重复。TaoToken 的 Base URL 就是https://taotoken.net/api不要自己拼/v1/chat/completionsOpenClaw 内部会处理路径拼接。如果你还没决定用哪个模型可以先到模型对话页面试一下https://taotoken.net/model-chat 。在网页里发一条消息确认通道通、模型有响应再回到服务器上配。这样能排除掉「是网络问题还是配置问题」的干扰。对于长期跑 Agent 的场景建议看一下 Coding Planhttps://taotoken.net/coding-plan 。它面向的是持续编码和 Agent 调用比按次计费更适合常驻进程。前置准备做完你手上应该有三样东西一个 API Key、Base URLhttps://taotoken.net/api、一个确认可用的 Model ID。接下来进入服务器操作。3. tmux 会话与 OpenClaw 配置文件的可复制片段这一节是核心操作区。先建 tmux 会话再改配置顺序不能反。因为改完配置要重启 gateway而重启命令要在 tmux 里跑。先登录服务器执行tmux new -s openclaw如果之前已经建过会话用tmux a -t openclaw重新接入。进去之后分三个窗格固定用 3 格Ctrlb %左右分Ctrlb 上下分Ctrlb 方向键切换。左上跑 gateway右上跑 repl 对话下半改配置和看日志。每个新窗格第一件事source ~/.bashrc cd ~/openclaw/openclaw不执行source的话nvm 装的 node 找不到会报node: command not found。这是 tmux 环境隔离导致的不是 OpenClaw 的问题。左上窗格启动 gateway带后台和重定向node openclaw.mjs gateway /dev/null 21 看到gateway listening on ws://127.0.0.1:18789就是成功。注意端口是 18789本地回环不对外暴露安全。下半窗格用 vim 改配置vim ~/.openclaw/openclaw.jsonvim 必用操作Esc ggdG清空全部Esc u撤销Esc :wq保存退出Esc :q!不保存退出。配置文件是 JSON 格式下面是一个可复制的片段把模型通道指向 TaoToken{ gateway: { host: 127.0.0.1, port: 18789 }, models: { default: { baseUrl: https://taotoken.net/api, apiKey: sk-你的TaoToken密钥, modelId: 你的ModelID } } }三个字段必须齐全baseUrl写https://taotoken.net/apiapiKey写你在 api-keys 页面创建的 KeymodelId写文档里确认的 ID。少任何一个请求都会失败。改完配置必须重启 gateway否则旧进程还在用旧配置pkill -f openclaw.mjs gateway node openclaw.mjs gateway /dev/null 21 如果你用的是 Cline MCP 或者 Codex 的auth.json体系逻辑一样Base URL、Key、Model ID 三件套填全。Cline MCP 的配置里对应baseUrl、apiKey、model三个字段Codex 的auth.json里对应base_url、api_key、model。字段名不同值一样。CC Switch 切换配置时也是改这三个值不要只改 Key 忘了 Model ID。配置改完先别急着对话下一节用 curl 验证 Key 是否真的生效。4. curl 验证 Key 生效与 OpenClaw 对话测试配置写完不代表通道通。先用 curl 直接打 TaoToken 的 API排除 OpenClaw 这一层的干扰。在下半窗格执行curl -s -X POST https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的TaoToken密钥 \ -H Content-Type: application/json \ -d { model: 你的ModelID, messages: [{role: user, content: ping}] }返回里如果有choices字段说明 Key 和 Model ID 都对。如果返回 401是 Key 错了如果返回model not found是 Model ID 错了如果返回local proxy failed或连接超时是网络出口问题不是 Key 问题。这一步能把问题定位到具体环节。curl 通了之后回到 OpenClaw。右上窗格先执行source ~/.bashrc cd ~/openclaw/openclaw单次对话测试node openclaw.mjs agent --to self --message 你好有回复就说明 OpenClaw 到 TaoToken 的链路通了。然后进沉浸式对话node openclaw.mjs replrepl模式有记忆连续聊天不会丢上下文。退出用CtrlC。如果repl里报reading choices相关错误通常是返回体结构没解析对检查 Model ID 是否和通道匹配。如果报 OAuth 相关错误说明配置里混进了需要 OAuth 的 provider把models.default改成纯 API Key 模式。实测下来curl 通但 OpenClaw 不通九成是配置文件里baseUrl末尾多了斜杠或者少了/api。TaoToken 的 Base URL 严格写https://taotoken.net/api不要写成https://taotoken.net/api/也不要写成https://taotoken.net。路径拼接是 OpenClaw 内部做的你多写一段就重复了。验证通过后你的日常固定流程就是tmux 分 3 格左上source ~/.bashrc然后node openclaw.mjs gateway /dev/null 21 右上source ~/.bashrc然后node openclaw.mjs repl下半改配置看日志。这套流程背下来每次重连服务器三分钟搞定。5. 本篇常见报错排查对照这一节把真实会遇到的报错列出来对照处理。第一个node: command not found。原因是没有source ~/.bashrcnvm 环境没加载。解决每个新 tmux 窗格第一件事就是source ~/.bashrc然后再cd。第二个401 Unauthorized。Key 错了或者没带Bearer前缀。检查 curl 命令里Authorization: Bearer sk-xxx格式以及配置文件里apiKey字段是否完整。注意 Key 前后不要有空格。第三个local proxy failed。这是网络出口问题不是 Key 问题。检查服务器能否访问https://taotoken.net/api用curl -I https://taotoken.net/api看返回头。如果连不上是服务器网络策略问题和 OpenClaw 配置无关。第四个reading choices报错。返回体里没有choices字段通常是 Model ID 写错网关返回了错误结构。对照文档确认 Model ID重新写进配置重启 gateway。第五个OAuth 相关报错。配置里混进了需要 OAuth 的 provider 字段。把models.default精简成只有baseUrl、apiKey、modelId三个字段删掉其他 provider 残留。第六个改了配置但行为没变。忘了重启 gateway。pkill -f openclaw.mjs gateway然后重新启动旧进程不会自动读新配置。第七个tmux 会话丢了。服务器重启或者 tmux 进程被杀。重新tmux new -s openclaw按固定流程重跑一遍。如果想开机自启那是 systemd 的活tmux 只负责会话保持。排查顺序建议先 curl 验证 Key再 OpenClaw 单次对话最后 repl。从外到内逐层排除。不要一上来就改 OpenClaw 配置先确认 TaoToken 通道本身是通的。6. 长期常驻与 Key 统一后的维护建议跑通之后维护比搭建更重要。tmux 会话本身不抗服务器重启如果你需要开机自启得配合 systemd 或者 cron 的reboot。但日常用 tmux 足够了重连服务器tmux a -t openclaw就回到现场。Key 统一到 TaoToken 之后轮换只需要改一个地方~/.openclaw/openclaw.json里的apiKey字段。改完pkill重启 gateway不用翻多个 provider 配置。这是统一通道最大的好处长期跑下来省很多事。日志方面gateway 启动时重定向到了/dev/null如果你要排查问题把 /dev/null 21 改成 ~/openclaw/gateway.log 21 日志落到文件里用tail -f看。日常跑可以关掉日志省磁盘。模型切换也简单改modelId字段重启即可。想试新模型先到 https://taotoken.net/model-chat 网页里发一条确认可用再写进配置。这样不会因为 Model ID 写错导致 gateway 起不来。如果你要长期跑编码类 AgentCoding Plan 比按次调用更划算入口在 https://taotoken.net/coding-plan 。接入文档在 https://taotoken.net/doc 配置字段有疑问先查文档再改。Key 管理在 https://taotoken.net/api-keys 轮换 Key 从这里创建新的。最后给一个实用技巧把 tmux 的固定流程写成一个 shell 脚本比如~/start-openclaw.sh内容就是source ~/.bashrc、cd ~/openclaw/openclaw、node openclaw.mjs gateway /dev/null 21 。每次重连服务器执行bash ~/start-openclaw.sh比手敲快。脚本里不要写 KeyKey 留在配置文件里脚本只负责启动。这样 Key 轮换时脚本不用动。
返回列表