1. 从内网到外网:OpenClaw WebUI 访问限制的真实场景
OpenClaw WebUI 默认只监听回环地址,也就是127.0.0.1,这意味着你只能在跑服务的那台机器上用浏览器打开它。一旦你想从笔记本、手机或者另一台内网机器访问,页面就会直接拒绝连接。这个设计本身是出于安全考虑,但对于需要远程调试、多设备协作或者把 WebUI 挂到公网入口的场景来说,第一步就得把bind从loopback改成lan,让服务绑定到0.0.0.0。
改完绑定只是解决了“能不能连上”的问题,真正决定你能不能稳定用起来的是鉴权链路。OpenClaw WebUI 支持 token 模式,而 token 背后指向的模型通道如果每个项目都单独配一套 Key,维护成本会迅速上升。我试过把 OpenClaw 的模型请求统一走 TaoToken 的 API 通道,用一个 Key 覆盖 WebUI 里的对话、代码补全和 Agent 调用,这样外网访问时只需要管好一个 token 的轮换和权限,不用在多个配置文件里来回改。
这篇内容面向的是已经装好 OpenClaw、想让 WebUI 支持局域网或公网访问,并且希望用统一 Key 完成鉴权的开发者。你会拿到一份可复制的settings.json骨架、外网访问的验证步骤,以及几个高频报错的排查清单。整个链路的目标很明确:一次跑通外网访问,并且确认 Key 真的生效。
2. TaoToken 前置:统一 Key 与 API 通道准备
在动 OpenClaw 的配置文件之前,先把模型通道这一层理清楚。OpenClaw WebUI 本身不生产模型能力,它只是一个交互入口,真正干活的是背后配置的 API 通道。如果你打算让 WebUI 在外网环境下也能正常对话和跑 Agent,就需要一个稳定、可统一管理的 Key 来源。
TaoToken 在这里扮演的角色是统一 Key 和 API 通道提供方。你可以在它的控制台里创建一个 API Key,然后把 OpenClaw 的模型请求指向 TaoToken 的 API 地址。这样做的好处是:WebUI 的settings.json里只需要维护一个 token 字段,不用为每个模型供应商单独写一套鉴权配置。对于外网访问场景来说,配置面越小,出错的概率越低。
具体操作上,先到 TaoToken 控制台生成一个 API Key。这个 Key 后面会填进 OpenClaw 的配置骨架里,作为模型请求的凭证。生成之后先复制保存,因为部分控制台只会在创建时完整显示一次。
拿到 Key 之后,确认你要用的 API 入口地址。TaoToken 的 API 地址是https://taotoken.net/api,这个地址会作为 OpenClaw 配置里的baseUrl或者等价的通道字段。注意这里不要加多余的路径后缀,OpenClaw 的请求拼接逻辑会自己处理/v1/chat/completions这类端点。
如果你后续还要做更细的权限控制,比如给不同设备分配不同的 Key,可以在控制台的 API Keys 页面里管理。对于长期跑编码和 Agent 的场景,也可以了解一下 Coding Plan,它更适合高频调用和固定额度的使用方式。但就这篇的外网访问配置而言,你只需要一个能用的 API Key 和正确的 API 地址就够了。
3. 可复制配置:settings.json 骨架与 bind 修改
OpenClaw 的配置文件通常位于~/.openclaw/openclaw.json,部分版本会在~/.clawdbot/clawdbot.json。如果你不确定路径,可以先执行一次clawdbot config path或者直接看启动日志里打印的配置加载路径。下面这份骨架把外网访问需要的几个关键字段都列出来了,你可以直接复制后替换 token 和端口。
{ "gateway": { "port": 18789, "mode": "remote", "bind": "lan", "auth": { "mode": "token", "token": "你的OpenClaw访问Token" } }, "model": { "provider": "openai-compatible", "baseUrl": "https://taotoken.net/api", "apiKey": "你的TaoToken API Key", "model": "claude-sonnet-4-20250514" }, "controlUi": { "allowInsecureAuth": true } }几个字段需要重点说明。bind从loopback改成lan,等价于绑定到0.0.0.0,这是外网访问的前提。mode建议从local改成remote,部分版本在local模式下会忽略bind的设置。auth.mode保持token,auth.token是你访问 WebUI 时 URL 里要带的那个 token,和 TaoToken 的 API Key 是两个不同的东西,不要混用。
model这一段是模型通道配置。baseUrl填 TaoToken 的 API 地址,apiKey填你在控制台生成的 Key。model字段按你实际要用的模型名填写,不同版本的 OpenClaw 对模型名的解析方式略有差异,如果启动后报模型不存在,优先检查这个字段。
如果你更习惯用命令行改,也可以不走手动编辑:
clawdbot config set gateway.bind lan clawdbot config set gateway.mode remote clawdbot config set gateway.controlUi.allowInsecureAuth true clawdbot gateway restart命令行方式的好处是不容易把 JSON 结构改坏,尤其是当你的配置文件里已经有其他字段时。改完之后建议用clawdbot config get gateway回读一次,确认bind和mode都生效了。
注意:
allowInsecureAuth在部分版本里是允许非本地认证的开关。如果你的 OpenClaw 版本不支持这个字段,启动时可能会报未知配置项,这时候把它删掉即可,不影响 token 鉴权本身。
4. 验证请求:外网访问与 Key 生效确认
配置改完并重启服务后,先在本机确认服务确实绑到了0.0.0.0。Linux 下可以用ss -tlnp | grep 18789,Windows 下用netstat -ano | findstr 18789。如果看到监听地址是0.0.0.0:18789而不是127.0.0.1:18789,说明 bind 修改已经生效。
接下来从另一台设备访问。假设服务器局域网 IP 是192.168.1.50,浏览器打开:
http://192.168.1.50:18789/?token=你的OpenClaw访问Token如果页面能正常加载出 WebUI 界面,说明外网访问链路已经通了。这时候不要急着高兴,还要确认模型通道是否真的走了 TaoToken。在 WebUI 里发一条最简单的消息,比如“回复 ok”,然后观察返回。如果返回正常,说明model.baseUrl和apiKey配置正确。
想更直接地验证 Key 生效,可以绕过 WebUI,直接用 curl 打一次 TaoToken 的 API:
curl -X POST https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer 你的TaoToken API Key" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-20250514", "messages": [{"role": "user", "content": "ping"}] }'如果返回里带有正常的choices字段,说明 Key 和 API 地址都没问题。这时候再回到 WebUI 里测试,如果 WebUI 报鉴权失败而 curl 正常,那问题就出在 OpenClaw 的配置字段上,重点检查apiKey有没有写错、baseUrl有没有多写斜杠。
首次从公网或新设备访问时,OpenClaw 可能会提示pairing required。这是设备授权机制,不是配置错误。回到服务器终端执行:
openclaw devices list openclaw devices approve [设备ID]授权之后刷新页面即可。这个步骤在外网访问里很常见,尤其是你换了浏览器或者清了 cookie 之后。
5. 本篇常见错排查清单
报错一:页面打不开,连接被拒绝。先确认服务是否真的在跑,clawdbot gateway status看进程状态。然后确认bind是不是lan,以及防火墙有没有放行 18789 端口。Linux 下ufw allow 18789,Windows 下在 Defender 防火墙里加一条入站规则。云服务器还要检查安全组。
报错二:页面能打开,但提示 token 无效。检查 URL 里的?token=是否和配置文件里的auth.token完全一致,注意不要有多余空格。如果你改过 token 但没重启服务,旧 token 仍然生效,重启后再试。
报错三:WebUI 能进,但发消息报模型鉴权失败。这种情况多半是model.apiKey或baseUrl的问题。先用上面那段 curl 单独验证 TaoToken 的 Key 是否可用。如果 curl 正常,检查 OpenClaw 配置里baseUrl是否写成了https://taotoken.net/api/带了尾部斜杠,部分版本拼接后会变成双斜杠导致 404。
报错四:启动时报未知配置项allowInsecureAuth。说明你的 OpenClaw 版本不支持这个字段,直接删掉即可。token 鉴权不依赖这个开关,删掉后外网访问仍然可用。
报错五:公网访问时提示pairing required且 devices list 为空。确认你执行openclaw devices list的终端和跑 gateway 的是同一个用户。如果用 systemd 跑的,需要sudo -u 对应用户 openclaw devices list。授权后如果还提示,清一下浏览器缓存再刷新。
报错六:局域网能访问,公网不行。这通常是网络层的问题,不是 OpenClaw 配置问题。检查端口映射、安全组、以及运营商是否封了对应端口。这种情况下不要反复改settings.json,先把网络链路打通。
6. 接入文档与后续操作入口
外网访问跑通之后,你可能会想把这套配置固化下来,或者给团队里其他人复用。这时候建议把 OpenClaw 的访问 token 和 TaoToken 的 API Key 分开管理:访问 token 控制谁能打开 WebUI,API Key 控制模型调用额度。两者职责不同,轮换周期也不一样。
如果你在配置过程中遇到鉴权相关的报错,优先去看接入文档里的字段说明,大部分字段名和取值范围都有对照表。需要新建或轮换 Key 的时候,直接到 API Keys 页面操作,生成后替换settings.json里的apiKey再重启服务即可。
想先确认模型通道是否正常,可以打开模型对话页面发一条测试消息,这比在 WebUI 里排查更快。如果你打算长期跑编码任务或者 Agent 工作流,Coding Plan 的额度方式会比按次调用更省心,适合把 OpenClaw 当成日常工具来用的场景。
配置这件事最怕的就是一次改太多字段,出了问题不知道是哪个引起的。建议你按这篇的顺序来:先改bind和mode确认外网能打开页面,再配model段确认 Key 生效,最后处理设备授权。每一步都验证过再往下走,排障成本会低很多。