1. 内网共享 OpenClaw 的真实痛点:为什么局域网设备打不开
很多人第一次把 OpenClaw 装在一台常开的机器上,心里想的都是「这下全家设备都能用了」。结果笔记本、平板、另一台台式机打开浏览器输入那台机器的内网 IP,页面要么转圈,要么直接甩出一句origin not allowed。这个场景我太熟了,本质上是 OpenClaw Gateway 默认只监听回环地址127.0.0.1,它压根没打算让外部设备连进来。
OpenClaw 是一个本地优先的 AI 网关与控制面板,能对接多种模型、管理设备配对、跑 Browser Relay 之类的自动化任务。它默认的mode: local加bind缺省值,决定了只有本机能访问。你要做内网共享,就得同时解决三件事:网关绑定模式、控制面板的跨域来源白名单、以及 HTTPS 安全上下文。少任何一环,都会卡在某个报错上。
我踩过的坑是这样的顺序:先改绑定,局域网能 ping 通但页面报origin not allowed;加上来源白名单后,又提示control ui requires device identity (use HTTPS or localhost secure context);配好 HTTPS 后冒出pairing required;好不容易配对成功,Browser Relay 又因为 HTTPS 罢工了。这一串问题环环相扣,所以这篇指南按「绑定 → 局域网访问 → HTTPS → 配对 → 验证」逐层展开,每一步都给可复制的配置和验证命令。
适合谁看:家里或办公室有多台设备、想让它们共用同一个 OpenClaw 实例的人;想用 TaoToken 统一 Key 做网关鉴权、避免每台机器各配一份密钥的人;以及被上面那几个报错卡住、想一次搞定的朋友。下面所有配置都基于~/.openclaw/openclaw.json,路径和字段名保持原样,你直接照着改就行。
2. TaoToken 统一 Key 前置准备:网关鉴权与模型接入
内网共享的核心矛盾是「多台设备、一份能力」。如果每台设备各自配 Key、各自管额度,很快就会乱套。更合理的做法是让 OpenClaw Gateway 作为统一出口,所有设备连到网关,网关再用一份 Key 去调用模型。TaoToken 在这里扮演的就是这个统一 Key 提供方的角色,它兼容 OpenAI 风格的接口,OpenClaw 可以直接把它当成一个模型供应商来配。
先说清楚 TaoToken 是什么、能做什么:它是一个大模型 API 聚合服务,提供统一的 Base URL 和 API Key,让你用一套凭证访问多种模型。对 OpenClaw 这种网关型工具来说,好处是网关只需要维护一份上游凭证,内网里再多设备也只是连网关,不直接碰 Key。适合谁:想集中管理密钥、想在内网做统一鉴权的团队或个人。
前置准备分两步。第一步,拿到 TaoToken 的 API Key。你可以打开模型对话页面先确认账号可用,再去控制台创建 Key。地址如下:
- 模型对话(验证账号与模型可用性):https://taotoken.net/api?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite
- 控制台(创建与管理 Key):https://taotoken.net/api?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite
- API Keys 管理页:https://taotoken.net/api?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite
创建 Key 时建议单独建一个给 OpenClaw 用的,命名清楚,方便日后轮换。拿到形如sk-xxxx的字符串后先放一边,下一步会写进 OpenClaw 的配置。
第二步,确认 OpenClaw 版本和配置文件位置。在网关主机上执行:
openclaw --version ls -la ~/.openclaw/你应该能看到openclaw.json。如果还没有这个文件,先跑一次openclaw gateway start让它生成默认配置,再停掉。默认配置里gateway.mode是local,bind没显式写,等价于只监听本机。这就是局域网打不开的根因。
注意:TaoToken 的 Base URL 用
https://taotoken.net/api,不要带任何查询参数。Key 只写在网关主机这一份配置里,内网其他设备不需要也不应该持有它,这正是统一 Key 的意义。
把这两步做完,你就有了「一份上游凭证 + 一个待改造的网关」。接下来进入真正的配置环节。
3. 可复制配置:网关绑定、局域网访问与 HTTPS 启用
这一节是全文的技术核心,所有片段都可以直接复制。我们改的是~/.openclaw/openclaw.json,重点是gateway这一段。先给完整片段,再逐字段解释。
{ "gateway": { "port": 18789, "mode": "local", "bind": "lan", "controlUi": { "allowedOrigins": [ "https://192.168.1.50:18789", "http://localhost:18789", "http://127.0.0.1:18789" ] }, "tls": { "enabled": true, "autoGenerate": true, "allowHttp": true } }, "providers": { "taotoken": { "baseUrl": "https://taotoken.net/api", "apiKey": "sk-你的TaoToken密钥", "model": "gpt-4o-mini" } } }逐字段说明。bind: "lan"是让网关监听局域网网卡,而不是只绑回环,这是局域网能连上的前提。port保持 18789,你也可以换,但后面所有地址都要跟着改。controlUi.allowedOrigins是跨域白名单,必须把你实际访问用的地址写进去,注意协议和端口要完全一致——https://192.168.1.50:18789里的 IP 换成你网关主机的真实内网 IP。tls.enabled: true配合autoGenerate: true会自动生成自签证书,解决requires device identity那个报错。allowHttp: true保留 HTTP 回退,方便本机调试。
providers.taotoken这一段是统一 Key 的落点。baseUrl固定为https://taotoken.net/api,apiKey填你上一步创建的 Key,model填你想默认使用的模型 ID。这样网关对外是一个入口,对内是一份凭证。
如果你更习惯用 TOML 风格管理,OpenClaw 也支持在项目目录放openclaw.toml做覆盖,等价写法:
[gateway] port = 18789 mode = "local" bind = "lan" [gateway.controlUi] allowedOrigins = ["https://192.168.1.50:18789", "http://localhost:18789"] [gateway.tls] enabled = true autoGenerate = true allowHttp = true [providers.taotoken] baseUrl = "https://taotoken.net/api" apiKey = "sk-你的TaoToken密钥" model = "gpt-4o-mini"改完配置后重启网关:
openclaw gateway restart openclaw gateway statusstatus里应该能看到监听地址从127.0.0.1:18789变成了0.0.0.0:18789或你的内网 IP。这一步做完,局域网连通性就打通了,但控制面板还会要求设备配对,下一节处理。
提示:自签证书浏览器会报警告,这是正常的。内网自用点「继续访问」即可;如果你有内网 CA,可以把
autoGenerate换成指定证书路径,字段名参考官方文档。
4. 验证请求与多机访问:curl 测试与设备配对
配置生效后别急着开浏览器,先用 curl 从另一台设备验证连通性和鉴权,这样能把「网络问题」和「配对问题」分开定位。
在局域网内的另一台机器上执行:
curl -k -i https://192.168.1.50:18789/health-k是跳过自签证书校验。预期返回HTTP/1.1 200 OK加一段 JSON。如果这里就失败,说明是绑定或防火墙问题,回到上一节检查bind和主机防火墙是否放行 18789。
连通后测试模型调用链路,确认 TaoToken 统一 Key 生效:
curl -k -i https://192.168.1.50:18789/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"ping"}]}'返回里带choices字段就说明网关到 TaoToken 的链路是通的。如果返回 401,多半是apiKey写错或没重启;如果返回reading choices之类的解析错误,检查baseUrl是否误加了路径或参数。
接下来处理配对。在网关主机上列出设备:
openclaw devices list你会看到已配对和未配对的设备,未配对的会显示一个 Device ID。在需要访问的那台设备上打开https://192.168.1.50:18789,页面会提示pairing required并给出它的 Device ID。回到网关主机执行:
openclaw devices approve <DeviceId>把<DeviceId>换成实际值。授权成功后刷新页面,输入访问密钥即可进入控制面板。多台设备重复这个流程,每台配对一次,之后就能稳定访问。
多机访问测试建议这样做:在设备 A 打开控制面板跑一次对话,在设备 B 同时跑一次,观察网关日志openclaw gateway logs是否有并发报错。正常情况下两台设备共用同一份 TaoToken Key,额度消耗统一计入网关这一侧,这正是内网共享想要的效果。
注意:
openclaw devices approve是授权动作,别把 Device ID 搞混。如果列表里设备很多,先记下要授权的那台的 ID 再执行。
5. 本篇常见错排查:origin not allowed 与 pairing required
这一节把开头提到的几个报错逐个对照,给出真实原因和修复动作。
origin not allowed (open the Control UI from the gateway host or allow it in gateway.controlUi.allowedOrigins):这是跨域白名单没匹配上。你访问用的地址必须和allowedOrigins里的某一项完全一致,包括协议、IP、端口。常见错误是白名单写了http://但实际用https://访问,或者 IP 写成了localhost。修复:把实际访问地址原样加进数组,重启网关。
control ui requires device identity (use HTTPS or localhost secure context):浏览器要求安全上下文才允许设备身份功能。localhost天然安全,但内网 IP 必须走 HTTPS。修复:确认tls.enabled: true且autoGenerate: true,用https://访问。如果还报,检查是不是用了http://内网IP访问。
pairing required:设备未授权。修复:openclaw devices list找到 Device ID,openclaw devices approve <DeviceId>。授权后刷新页面。
401 Unauthorized:TaoToken Key 错误或未生效。修复:核对apiKey是否完整、有没有多余空格,改完必须openclaw gateway restart。可以先用模型对话页面确认 Key 本身可用。
local proxy failed:网关到上游的连接失败。检查baseUrl是否为https://taotoken.net/api,网络是否可达,以及网关主机能否正常访问外网。
reading choices解析错误:通常是上游返回了非预期结构,多半是baseUrl带了多余路径或modelID 不存在。修复:baseUrl只保留https://taotoken.net/api,model换成确认可用的 ID。
Browser Relay 在 HTTPS 下不可用:这是已知限制,Browser Relay 不支持 HTTPS 上下文。如果你强依赖它,可以保留allowHttp: true,在本机用http://127.0.0.1:18789跑 Relay,其他设备走 HTTPS 访问控制面板。两者并存,各取所需。
排查顺序建议固定为:先 curl/health确认连通,再 curl/v1/chat/completions确认鉴权,最后处理配对。这样每层问题都能独立定位,不会互相干扰。
6. 长期内网共享的接入建议与 CTA
把上面几步跑通后,你的内网就形成了一个稳定的结构:一台网关主机持有 TaoToken 统一 Key,多台设备通过 HTTPS 连到网关,配对一次长期可用。日常维护其实很轻:Key 轮换时只改网关这一份配置,设备端无感;新增设备只需再配对一次。
如果你打算长期跑编码类或 Agent 类任务,建议了解一下 Coding Plan,它更适合持续性的模型调用场景,配合网关统一出口能进一步简化额度管理:https://taotoken.net/api?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite
需要新建或轮换 Key 时,直接去 API Keys 页面操作:https://taotoken.net/api?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite
配置过程中遇到字段不确定的,接入文档里有完整的参数说明:https://taotoken.net/api?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite
最后给一个实用技巧:把网关主机的内网 IP 在路由器里做静态绑定,避免 DHCP 换 IP 导致allowedOrigins失效。这一步花两分钟,能省掉日后「昨天还好好的今天又打不开」的排查时间。