尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

CentOS Stream 10 安装 OpenClaw 修正完整版文档:TaoToken 统一 Key 配置与验证

CentOS Stream 10 安装 OpenClaw 修正完整版文档:TaoToken 统一 Key 配置与验证 1. CentOS Stream 10 装 OpenClaw 前先把旧环境清干净CentOS Stream 10 安装 OpenClaw 这件事说难不难说简单也容易翻车。OpenClaw 是一个可本地部署的 AI 网关与技能编排工具能对接大模型 API、管理会话通道、跑自动化技能适合想在自己服务器或虚拟机上搭一套私有 AI 助手的开发者。而 CentOS Stream 10 作为滚动更新的企业级发行版dnf 包管理、SELinux 默认策略、Node.js 版本都跟 Ubuntu 系有差异直接照搬网上教程大概率会卡在依赖或端口监听上。我自己在 CentOS Stream 10 的虚拟机上反复装过几轮踩过的坑集中在三块旧环境残留导致命令冲突、Node.js 版本不对导致模块缺失、服务只监听 127.0.0.1 导致外部打不开页面。这篇就把完整修正流程拆开讲从清环境、装 Node.js、npm 全局安装 OpenClaw到用 TaoToken 统一 Key 接入模型、写 config.toml 和 settings.json、验证请求、排错一步步给到可复制的命令和配置。先明确环境基线避免你对着不同配置瞎试项目建议配置系统CentOS Stream 1064 位机器2 核 4G 及以上网络桥接或 NAT能访问外网权限root 或 sudoNode.jsv22.xnpm10.x关键修正点先摆出来普通用户别用源码编译安装依赖缺失必然 build 失败安装前必须彻底清理旧环境否则会出现命令失效、模块找不到官方二进制包链接已失效别直接下服务启动后如果访问 127.0.0.1:18789 报 invalid link核心原因是只监听了本地回环需要把 gateway.host 配成 0.0.0.0。清理旧环境这一步很多人跳过结果新装的命令调用的还是旧文件。下面这段一次性执行适配 CentOS Stream 10 的 dnf 体系# 杀掉相关进程避免占用导致删除失败 pkill -f node 2/dev/null pkill -f openclaw 2/dev/null # 删除系统全局命令 rm -rf /usr/local/bin/openclaw /usr/bin/openclaw 2/dev/null # 清理别名与脏配置 unalias openclaw 2/dev/null sed -i /openclaw/d /etc/bashrc ~/.bashrc 2/dev/null source /etc/bashrc 2/dev/null # 删除旧源码、缓存、配置目录 rm -rf /root/openclaw* /root/.openclaw /tmp/openclaw* 2/dev/null # 卸载全局旧包并清缓存 npm uninstall -g openclaw 2/dev/null npm cache clean --force 2/dev/null执行完切到 root更新系统并装基础依赖su - root dnf update -y dnf groupinstall -y Development Tools dnf install -y curl wget git python3 libX11-devel libsecret-devel gtk3-devel这里装 Development Tools 和几个 devel 包是为了让后续 npm 安装时如果有原生模块编译需求不会因为缺 gcc、make、python3 而中断。CentOS Stream 10 默认的 SELinux 和防火墙后面还要单独处理先记着。2. TaoToken 统一 Key 前置准备与 OpenClaw 安装OpenClaw 本身不绑定某一家模型它通过 provider baseURL apiKey 的方式对接任意兼容 OpenAI 协议的服务。TaoToken 在这里扮演的角色就是统一 Key 和统一 API 通道你只需要在 TaoToken 拿一个 Key配一个 Base URL就能在 OpenClaw 里切换不同模型不用为每个模型单独维护一套密钥和地址。对经常在多个模型之间对比效果的人来说这能省掉大量重复配置。TaoToken 的官网入口是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 。注意 API 地址后面不加 UTM 参数配置里填的就是这个纯地址。你需要先在控制台创建一个 API Key后面 config.toml 和 settings.json 里都会用到。拿 Key 的路径进控制台 → API Keys → 新建复制生成的 Key 保存好。这个 Key 就是 OpenClaw 里 apiKey 字段的值。模型 ID 则根据你要用的模型填比如常见的对话模型 ID具体以 TaoToken 文档里列出的为准。接下来装 Node.js。OpenClaw 依赖 Node.js v22.x用 NodeSource 官方仓库装最稳curl -fsSL https://rpm.nodesource.com/setup_22.x | bash - dnf install -y nodejs node --version npm --version正常会输出 node v22.x.x 和 npm 10.x.x。如果 node 版本还是旧的说明 PATH 里有旧版本残留用which node查一下路径把旧的删掉再重装。然后装 OpenClaw。推荐 npm 全局安装并指定国内镜像避免下载超时npm install -g openclawlatest --registry https://registry.npmmirror.com openclaw --version看到版本号输出就说明装好了。如果你更想用官方一键脚本也可以curl -fsSL https://openclaw.ai/install.sh | bash但脚本执行如果报错直接回到 npm 全局安装这条路径它不编译、不缺模块成功率最高。源码编译安装这条路普通用户别走会报 buape/carbon 缺失、build 失败、插件依赖错误这些都是开发版才需要的依赖。安装完成后OpenClaw 的配置文件默认在~/.config/openclaw/下。新版初始化向导在跳过可交互平台时会报错所以更推荐直接手写配置文件一步到位。下面先给 config.toml 骨架这是 OpenClaw 主配置# ~/.config/openclaw/config.toml [model] provider openai api_key sk-你的TaoTokenKey model 你的模型ID base_url https://taotoken.net/api [gateway] port 18789 host 0.0.0.0 mode local [gateway.auth] enabled false同时给一份 settings.json 片段部分版本或技能会读这个文件{ model: { provider: openai, apiKey: sk-你的TaoTokenKey, model: 你的模型ID, baseURL: https://taotoken.net/api }, gateway: { port: 18789, host: 0.0.0.0, mode: local, auth: { enabled: false } } }三件套对照记牢Base URL 填https://taotoken.net/apiKey 填 TaoToken 控制台生成的Model ID 填你要用的模型标识。host 设成 0.0.0.0 是解决 invalid link 的关键auth.enabled 设 false 是避免终端执行命令时反复要 Token。3. 可复制配置落地config.toml 与 settings.json 写入配置写对只是第一步写对位置、写对格式才算落地。OpenClaw 读配置的优先级是命令行参数 环境变量 配置文件。所以如果你之前用环境变量设过 OPENAI_API_KEY 之类可能会覆盖配置文件排查时要注意。先建目录再写文件避免路径不存在导致写入失败mkdir -p ~/.config/openclaw然后写 config.toml。用 heredoc 一次写入注意把 Key 和模型 ID 换成你自己的cat ~/.config/openclaw/config.toml EOF [model] provider openai api_key sk-你的TaoTokenKey model 你的模型ID base_url https://taotoken.net/api [gateway] port 18789 host 0.0.0.0 mode local [gateway.auth] enabled false EOF再写 settings.jsoncat ~/.config/openclaw/settings.json EOF { model: { provider: openai, apiKey: sk-你的TaoTokenKey, model: 你的模型ID, baseURL: https://taotoken.net/api }, gateway: { port: 18789, host: 0.0.0.0, mode: local, auth: { enabled: false } } } EOF写完后检查一下内容是否正确尤其是 Key 有没有多余空格、base_url 有没有多斜杠cat ~/.config/openclaw/config.toml cat ~/.config/openclaw/settings.jsonCentOS 这边还必须处理 SELinux 和防火墙否则服务会被拦截端口也访问不了# 临时关闭 SELinux setenforce 0 # 永久关闭 sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config # 开放端口 firewall-cmd --permanent --add-port18789/tcp firewall-cmd --permanent --add-port3000/tcp firewall-cmd --reload如果你不想永久关 SELinux也可以只放行端口但 OpenClaw 在 enforcing 模式下有时会被策略挡住实测下来直接 disabled 最省事。防火墙这两条命令执行完18789 和 3000 就通了。配置里几个参数的作用再对照一遍方便你按需改参数作用建议值provider协议类型openaibase_urlAPI 通道地址https://taotoken.net/apiapi_key统一 KeyTaoToken 控制台生成model模型 ID按需填gateway.host监听地址0.0.0.0gateway.port服务端口18789auth.enabled网关认证false注意auth.enabled 设 false 只适合本地或内网环境。如果这台机器有公网 IP建议开启认证并配好 Token避免被扫到。配置写完后OpenClaw 的技能和通道配置也会读同一目录。如果你后面要绑飞书通道配置会追加到 settings.json 或单独的 channels 配置里先保证模型和网关这两块跑通。4. 验证请求与成功结果openclaw doctor 与 gateway 启动配置落地后先别急着开服务用 doctor 做一次自检它会检查 Node 版本、配置文件、依赖完整性openclaw --version openclaw doctordoctor 输出里如果有 warning按提示修。常见的 warning 是配置文件字段名不对或 Key 为空。确认无误后启动网关openclaw gateway --allow-unconfigured--allow-unconfigured的作用是允许在部分通道未配置的情况下启动避免因为没绑聊天平台就起不来。启动后另开一个终端检查端口监听状态ss -tulnp | grep 18789你要看到的是0.0.0.0:18789而不是127.0.0.1:18789。如果是后者说明 config.toml 里的 host 没生效回去检查[gateway]段的 host 是不是写成了 0.0.0.0以及有没有被环境变量覆盖。接着验证模型请求是否真的通。OpenClaw 提供命令行对话入口可以直接发一条测试消息openclaw chat --message 你好测试一下连接如果返回正常文本说明 TaoToken 的 Key、Base URL、模型 ID 三件套都对了。如果报 401说明 Key 无效或没带上如果报 model not found说明模型 ID 填错如果报连接超时检查网络和 base_url 是否可达。也可以用 curl 直接打 TaoToken 的 API 做旁路验证确认 Key 本身没问题curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的TaoTokenKey \ -H Content-Type: application/json \ -d { model: 你的模型ID, messages: [{role: user, content: ping}] }返回里有 choices 字段和内容就说明 Key 和通道都正常问题只可能在 OpenClaw 配置层。服务跑起来后从外部访问页面。如果你在虚拟机里跑宿主机想打开页面推荐用 SSH 隧道适配所有网络模式ssh -L 18789:127.0.0.1:18789 root你的虚拟机IP这条命令把虚拟机的 18789 映射到本机 18789然后在宿主机浏览器访问http://127.0.0.1:18789就能打开 OpenClaw 页面。NAT 模式也可以用 VMware 的端口转发在虚拟网络编辑器里给 VMnet8 加一条规则主机端口 18789 转发到虚拟机 18789。常用服务管理命令一并给你方便后续维护systemctl --user start openclaw-gateway systemctl --user stop openclaw-gateway systemctl --user restart openclaw-gateway systemctl --user enable openclaw-gateway openclaw configure openclaw skills list journalctl -u openclaw -f pkill -f openclawjournalctl -u openclaw -f是排错时最常用的服务起不来先看日志。5. 本篇常见报错排查401、invalid link、reading choices装 OpenClaw 过程中报错集中在几个固定位置下面按真实报错对照给修正动作。报错一401 Unauthorized。这是 Key 问题。检查 config.toml 里 api_key 是不是 TaoToken 控制台生成的完整 Key有没有前后空格有没有把Bearer前缀也写进去配置文件里只填 Key 本身不填 Bearer。如果 Key 刚生成确认没有复制漏字符。旁路用 curl 测一下curl 通而 OpenClaw 不通就是配置文件字段名写错了比如把 api_key 写成了 apiKeytoml 里是下划线json 里是驼峰。报错二127.0.0.1:18789 invalid link。这是监听地址问题。服务只绑了回环外部访问不到。修正动作确认 config.toml 的[gateway]段 host 0.0.0.0重启服务再用ss -tulnp | grep 18789确认监听地址变了。如果还是 127.0.0.1检查有没有环境变量 OPENCLAW_HOST 之类覆盖了配置。报错三reading choices 相关解析错误。这类报错通常是返回体不是预期的 JSON 结构原因可能是 base_url 写错导致请求打到了非 API 地址或者模型 ID 不存在返回了错误页。修正动作确认 base_url 是https://taotoken.net/api不要多加/v1或结尾斜杠确认模型 ID 在 TaoToken 文档里存在。用 curl 打一次看返回体里有没有 choices没有就是上游返回了错误。报错四local proxy failed。这个多半是网络层问题虚拟机 DNS 或出网被挡。检查curl -I https://taotoken.net/api能不能通不通就先修网络。CentOS 上如果开了防火墙但没放行出站也会出现类似现象。报错五OAuth 或登录态相关报错。如果你在 OpenClaw 里配了需要 OAuth 的通道比如某些聊天平台初始化时会跳转授权。这类报错跟模型接入无关先把通道配置跳过保证模型和网关跑通再单独处理通道授权。报错六buape/carbon 缺失。这是源码编译安装的典型报错普通用户不用管直接卸载重装走 npm 全局安装npm uninstall -g openclaw npm cache clean --force npm install -g openclawlatest --registry https://registry.npmmirror.com报错七命令反应慢或命令失效。源码版每次执行会触发重新编译慢是正常的命令失效多半是旧软链接或 alias 残留回到第 1 节的清理步骤重来一遍。排查顺序建议固定成先 curl 测 Key 和通道 → 再 openclaw doctor 查配置 → 再看 ss 查端口 → 最后 journalctl 看日志。这样能快速定位是 Key 层、配置层还是网络层的问题。6. 用 TaoToken 统一 Key 跑通 OpenClaw 后的接入建议模型和网关跑通后接下来就是把它用起来。OpenClaw 的技能列表可以用openclaw skills list查看按需启用。如果你要绑飞书做对话入口执行openclaw channels login --channel feishu扫码完成配置后再执行openclaw gateway --allow-unconfigured就能在飞书里跟 OpenClaw 对话了。通道配置会写进配置目录跟模型配置互不影响。关于 TaoToken 的 Key 管理建议一个环境用一个 Key方便按环境排查和轮换。Key 泄露了直接在控制台吊销重建OpenClaw 这边改一下 config.toml 和 settings.json 里的 api_key 即可不用动其他配置。模型切换也简单改 model 字段重启服务就生效Base URL 和 Key 都不用变这就是统一 Key 通道的价值。如果你后面要长期跑编码类或 Agent 类任务可以了解下 Coding Plan 这类方案按用量规划比单次调用更划算。需要看模型对话效果或管理 Key走模型对话和 API Keys 页面就行。接入文档里有各语言的调用示例配 OpenClaw 时对照着看能少走弯路。最后留一个实用习惯每次改完配置先openclaw doctor再重启服务能挡掉大部分低级错误。日志用journalctl -u openclaw -f挂着出问题第一时间能看到堆栈。CentOS Stream 10 的 SELinux 如果哪天又开了记得setenforce 0临时放行或者把 OpenClaw 相关路径加进策略白名单。这套流程跑顺之后重装或迁移基本十分钟内能搞定。
返回列表