ARTICLE DETAIL

资讯详情

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

内网服务器 OpenClaw 部署 + WebUI 内网直连 + 本地模型接入 全流程教程:TaoToken 统一 Key 配置与验证

内网服务器 OpenClaw 部署 + WebUI 内网直连 + 本地模型接入 全流程教程:TaoToken 统一 Key 配置与验证 1. 内网服务器上跑 OpenClaw为什么 WebUI 直连和本地模型接入总卡壳内网服务器部署 OpenClaw 这件事真正让人头疼的从来不是安装本身而是装完之后那两步局域网里的其他电脑怎么直接打开 WebUI以及本地模型怎么接进去。我见过太多人卡在control ui requires device identity这个报错上反复检查 token 却找不到原因最后只能退回 SSH 隧道凑合用。OpenClaw 是一个可以在服务器上常驻运行的 AI 工具网关它自带 Control UI也就是 WebUI支持接入多种模型 Provider适合放在内网做统一的 AI 入口。它的 Gateway 原生支持 TLS 终止不需要额外装 nginx 就能让局域网设备通过 HTTPS 直连。但前提是你要把证书、绑定地址、允许来源这几项配对否则浏览器会直接拒绝加载 Control UI。这篇教程面向的是内网 Ubuntu 服务器场景从零开始走完 OpenClaw 部署、本地模型接入、WebUI 内网直连的完整链路。同时我会把 TaoToken 统一 Key 的配置骨架嵌进config.toml和settings.json里让你在接入本地模型之外还能用同一套 Key 通道访问云端模型做对比验证。整个流程我按实际踩坑顺序排列每一步都有可复制的命令和预期输出。2. TaoToken 前置统一 Key 与 API 通道准备在开始配置 OpenClaw 之前先把 TaoToken 的 Key 和通道准备好。这一步的意义在于内网本地模型代理负责离线推理TaoToken 负责在需要时提供云端模型的统一入口两者共用一套配置结构切换时只改 Provider 名称。2.1 获取 API Key访问 TaoToken 控制台创建 API Keyhttps://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentconsole创建后你会拿到一个以sk-开头的 Key。这个 Key 同时适用于模型对话和 Coding Plan 场景建议先创建一个专门给内网服务器用的 Key方便后续按设备撤销。2.2 确认 API 通道地址TaoToken 的 API 基础地址是https://taotoken.net/api这个地址兼容 OpenAI 的/v1/chat/completions和/v1/models接口格式。在 OpenClaw 里配置时baseUrl填https://taotoken.net/api/v1api字段填openai-completions。2.3 验证 Key 可用性在服务器上先做一次连通性测试确认 Key 和网络都没问题curl -s https://taotoken.net/api/v1/models \ -H Authorization: Bearer sk-你的Key | head -c 800如果返回模型列表 JSON说明 Key 有效。如果返回 401检查 Key 是否复制完整如果超时检查服务器出网策略。注意内网服务器如果完全离线这一步可以跳过直接用本地模型代理验证。TaoToken 通道适合有出网能力但需要统一管理的场景。3. 可复制配置config.toml 与 settings.json 骨架OpenClaw 的配置分两层~/.openclaw/openclaw.json是主配置负责 Gateway、Provider、Agent 默认模型settings.json用于 Control UI 侧的偏好设置。下面给出两份可直接复制的骨架。3.1 openclaw.json 主配置骨架{ gateway: { mode: local, auth: { mode: token, token: 你的GatewayToken }, port: 18789, bind: lan, controlUi: { allowInsecureAuth: true, allowedOrigins: [ https://192.168.1.107:18789, http://localhost:18789, http://127.0.0.1:18789 ] }, tls: { enabled: true, certPath: /home/youruser/.openclaw/certs/server.crt, keyPath: /home/youruser/.openclaw/certs/server.key } }, models: { providers: { localproxy: { baseUrl: http://127.0.0.1:31415/v1, apiKey: local-proxy-key, api: openai-completions, models: [ { id: auto, name: Auto Router, reasoning: false, contextWindow: 1048576, contextTokens: 1048576, maxTokens: 32768 } ] }, taotoken: { baseUrl: https://taotoken.net/api/v1, apiKey: sk-你的TaoTokenKey, api: openai-completions, models: [ { id: claude-sonnet-4-5, name: Claude Sonnet 4.5, reasoning: true, contextWindow: 200000, contextTokens: 200000, maxTokens: 8192 } ] } } }, agents: { defaults: { model: { primary: localproxy/auto } } } }关键字段说明字段作用注意事项gateway.bind绑定范围lan允许局域网访问local仅本机gateway.tls.enabled开启 TLSControl UI 必须 HTTPS 或 localhostallowedOrigins允许的来源必须包含实际访问的https://IP:端口models[].input输入类型不要写简单数值格式不对会校验失败models[].cost费用字段同上建议直接省略3.2 settings.json 骨架Control UI 侧的settings.json位于~/.openclaw/settings.json主要控制界面行为和默认会话参数{ ui: { theme: dark, defaultAgent: defaults, showTokenUsage: true }, chat: { defaultModel: localproxy/auto, streamResponse: true, maxHistoryMessages: 50 }, security: { requireDeviceApproval: true, sessionTimeoutMinutes: 480 } }requireDeviceApproval设为true时新设备首次访问需要服务器端批准这是内网安全的基本保障。如果你在内网完全可信环境可以设为false但我不建议。3.3 配置校验写完配置后必须校验不要直接重启source ~/.nvm/nvm.sh openclaw config validate期望输出Config valid: /home/youruser/.openclaw/openclaw.json如果报models.providers.xxx.models.0.input: Invalid input说明你在 models 数组里写了input或cost字段且格式不对。直接删掉这两个字段即可。4. 验证请求从本地模型到 TaoToken 通道配置写完只是第一步真正要确认的是两条链路都能跑通。4.1 验证本地模型代理先确认本地代理在监听ss -tlnp | grep 31415然后直接请求本地代理的 chat 接口curl -s -X POST http://127.0.0.1:31415/v1/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer local-proxy-key \ -d {model:auto,messages:[{role:user,content:hi}],max_tokens:16}返回里如果带_routed_via字段说明 auto 路由正常工作。4.2 验证 TaoToken 通道curl -s -X POST https://taotoken.net/api/v1/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer sk-你的TaoTokenKey \ -d {model:claude-sonnet-4-5,messages:[{role:user,content:hi}],max_tokens:16}返回正常内容即通道可用。如果你想在浏览器里直接对比两个模型的效果可以打开模型对话页面https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmodel_chat4.3 验证 Gateway 端到端重启 Gateway 后检查日志export XDG_RUNTIME_DIR/run/user/$(id -u) systemctl --user restart openclaw-gateway sleep 8 journalctl --user -u openclaw-gateway --no-pager -n 20 | grep -iE agent model|listening|ready期望看到agent model: localproxy/auto (thinkingoff, fastoff) listening on https://0.0.0.0:187894.4 验证 WebUI 直连在服务器本地用 curl 测试 HTTPScurl -sk -o /dev/null -w %{http_code}\n https://192.168.1.107:18789/返回200说明 TLS 和端口都正常。然后在局域网另一台电脑浏览器打开https://192.168.1.107:18789如果证书已导入受信任根应该直接进入登录页。5. 本篇常见错排查从证书到设备配对这一节按报错现象组织每条都给出原因和动作。5.1 control ui requires device identity现象浏览器打开http://192.168.1.107:18789直接报这个错。原因Control UI 只在安全上下文HTTPS 或 localhost下生成设备身份明文 HTTP 访问内网 IP 不满足条件。token 认证不能替代这个限制。动作开启gateway.tls.enabled用https://访问。不要试图用allowInsecureAuth绕过它只在 localhost 下放宽。5.2 pairing required: device is not approved yet现象HTTPS 通了、token 填对了仍然进不去日志显示phaseauth_validated。原因新设备首次连接会生成配对请求需要服务器端批准。动作source ~/.nvm/nvm.sh openclaw devices list openclaw devices approve requestId批准后再openclaw devices list设备应进入 Paired 列表。5.3 No pending device request matches现象执行 approve 时报这个错。原因配对请求有有效期过期后无法批准。动作让浏览器刷新 Control UI 页面重新生成请求然后在有效期内尽快批准。5.4 models.0.input: Invalid input现象openclaw config validate报这个错。原因在models[]里写了input: 0.0或cost: 0.0这类简单数值格式不符合校验要求。动作直接删掉input和cost字段重新校验。5.5 custom model providers must declare models现象用openclaw config set分步写 Provider 时报这个错。原因增量校验时缺少models字段。动作自定义 Provider 必须一次性完整写入 JSON不要分步 set。可以先用 base64 传输脚本改 JSON再 validate。5.6 HTTP 000 / 连不上现象curl 返回 000浏览器无法连接。原因Gateway 未启动或绑定地址不对。动作systemctl --user status openclaw-gateway journalctl --user -u openclaw-gateway --no-pager -n 30检查bind是否为lan端口是否被占用。5.7 浏览器证书警告现象访问https://192.168.1.107:18789提示证书不受信任。原因自签证书未导入本机受信任根。动作把server.crt拷到本机Windows 下执行Import-Certificate -FilePath C:\path\to\server.crt -CertStoreLocation Cert:\CurrentUser\Root导入后重启浏览器即可。6. 长期编码与 Agent 场景的 Key 管理如果你打算把 OpenClaw 作为长期编码助手或 Agent 运行平台Key 的管理方式需要提前规划。内网本地模型代理适合高频、低延迟的日常调用TaoToken 通道适合需要更强推理能力的复杂任务。对于长期编码场景建议使用 Coding Plan 来统一管理调用配额和 Key 轮换https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcoding_plan在 OpenClaw 里你可以把agents.defaults.model.primary设为localproxy/auto然后在具体 Agent 配置里覆盖为taotoken/claude-sonnet-4-5实现按任务切换。这样日常对话走本地复杂重构走云端Key 和通道都在同一套配置里管理。如果你需要为不同设备或不同 Agent 分配独立 Key可以在 API Keys 页面按用途创建https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentapi_keys每个 Key 可以单独撤销不影响其他设备。内网服务器建议用一个专用 Key方便审计和轮换。配置接入相关的完整文档在https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentdoc如果你用的是 Claude Code 或 Anthropic 风格的接入方式可以参考https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentclaude_code整个链路跑通后日常维护只需要三条命令openclaw gateway status看状态openclaw doctor做健康检查openclaw devices list管理设备。配置改动后先openclaw config validate再重启能避免大部分启动失败。
返回列表