
1. 部署完 OpenClaw 之后为什么第一件事是打通公网访问很多人把 OpenClaw 装好、看到本地控制台能正常对话之后就停在这个状态了。本地跑得挺顺但一旦离开那台电脑这个 AI 助手就等于不存在。我自己也经历过这个阶段装完当天很兴奋第二天上班想让它帮忙查点资料才发现根本连不上家里的机器。OpenClaw 是一个完全本地运行的 AI 助手对话记录、读取的文件、执行的命令都留在你自己的硬盘上这是它最大的价值。但它的默认设定是只监听本机或局域网外部网络默认进不来。这就带来一个很现实的矛盾数据安全靠的是本地化可用性却被锁在了那台机器旁边。解决这个矛盾的标准做法是内网穿透。cpolar 是这类工具里上手门槛比较低的一个它能在不改动路由器、不申请公网 IP 的前提下把本地端口映射成一个公网地址。把 OpenClaw 的 Web 控制台端口通过 cpolar 暴露出去你就能在手机、公司电脑、出差酒店里打开浏览器直接和家里的 AI 对话。这篇文章不讲原理只讲动作。我会把 cpolar 的隧道配置、OpenClaw 的端口与鉴权设置、外网访问验证的完整清单以及中间最容易卡住的几个报错按顺序整理成可以直接照着做的步骤。同时也会说明怎么用 TaoToken 统一 Key 和 API 通道把模型能力接进这套本地环境避免在多个平台之间来回切换密钥。适合谁看已经在本地部署好 OpenClaw、想让它在公网可用的人想用 cpolar 做内网穿透但被 allowedOrigins 或设备配对卡住的人以及希望把本地 AI 助手和统一 API 通道串起来的人。下面从环境准备开始一步步走。2. TaoToken 与 OpenClaw 的前置准备统一 Key 与 API 通道在动手配 cpolar 之前先把模型接入这一层理清楚否则后面穿透出去了对话却因为 Key 或 Base URL 不对而报错排查起来会同时牵扯两个系统很费时间。OpenClaw 本身是一个本地助手框架它需要调用外部模型来完成推理。默认情况下你可能在配置文件里填了某一家厂商的 Key 和地址。问题是一旦你换了模型、换了厂商或者想同时用几个不同来源的模型就要反复改配置、管理多套密钥。TaoToken 在这里的作用就是把这些统一起来一个 Key、一个 Base URL背后对接多家模型能力OpenClaw 只需要认这一个入口。具体要准备三样东西我把它叫做三件套后面所有配置都围绕它展开配置项作用在 OpenClaw 里的位置Base URL模型请求的统一入口地址模型/网关配置中的 API 地址字段API Key身份凭证替代多家厂商的多套密钥模型配置中的密钥字段Model ID指定实际调用的模型标识模型配置中的 model 字段Base URL 填https://taotoken.net/api这是不带任何追踪参数的干净地址。API Key 在控制台里生成生成后只显示一次记得当场复制保存。Model ID 按你实际要用的模型填写不同模型能力差异较大建议先用一个通用对话模型跑通链路再按场景替换。这里有个我踩过的坑很多人把 Base URL 写成带斜杠结尾或者带多余路径的形式结果请求 404。正确做法是只写到/api不要自己拼/v1/chat/completions这类后缀具体路径由 OpenClaw 的请求逻辑决定。如果你还没有 Key可以先去控制台创建。整个流程是注册登录后进入控制台在 API Keys 页面新建一个密钥复制保存。这一步不需要任何网络工具正常浏览器访问即可。准备好三件套之后先别急着配 cpolar。建议先在本地把 OpenClaw 和 TaoToken 的链路跑通确认本地对话正常再去穿透。这样出问题时能明确是接入层的问题还是穿透层的问题排查范围小很多。本地验证的方法很简单在 OpenClaw 里发一句测试对话能正常返回就说明 Base URL、Key、Model ID 三件套是对的。3. cpolar 隧道配置与 OpenClaw 端口鉴权设置这一节是全文的核心操作区包含可复制的配置片段。我按“先装 cpolar、再配隧道、最后改 OpenClaw 鉴权”的顺序写每一步都有对应的命令或配置。3.1 安装 cpolar 并确认版本Windows 下从 cpolar 官网下载 64 位安装包解压后一路默认安装。装完打开 cmd 或 PowerShell输入cpolar version能打印出版本号就说明安装成功。如果提示命令找不到多半是安装目录没进 PATH重新打开一个终端窗口再试或者用绝对路径调用。3.2 登录 cpolar Web UI 并确认隧道列表安装完成后cpolar 会在本机起一个管理界面默认地址是http://127.0.0.1:9200用注册好的账号登录进入左侧“隧道管理”下的“隧道列表”。默认会有两条隧道一条指向 3389远程桌面TCP 协议一条指向 8080HTTP 协议。我们要做的是新增或编辑一条指向 OpenClaw 控制台端口的隧道。假设你的 OpenClaw 控制台监听在 18789 端口这是常见默认值以你实际配置为准在隧道编辑页填写隧道名称openclaw 协议http 本地地址18789 地区China Top保存后进入“状态”菜单下的“在线隧道列表”能看到一条 http 和一条 https 的公网地址。https 那条可以直接用省去自己配证书的麻烦。3.3 放行穿透域名allowedOrigins 配置第一次用公网地址打开 OpenClaw 控制台大概率会看到这个报错origin not allowed (open the Control UI from the gateway host or allow it in gateway.controlUi.allowedOrigins)这是 OpenClaw 的安全机制默认只允许从本机打开控制台任何外部来源都要显式放行。解决办法是把穿透出来的域名加进白名单。打开 cmd执行openclaw config set gateway.controlUi.allowedOrigins [\https://你的穿透域名\] --strict-json openclaw gateway restart注意两点一是把域名替换成你自己在线隧道列表里那条 https 地址不要照抄示例二是--strict-json不能省它保证写入的是合法 JSON 数组格式。执行完重启网关再刷新公网地址报错会变成要求输入网关令牌说明放行成功了。3.4 网关令牌与设备配对回到本地 OpenClaw 聊天界面的“概览”菜单复制网关令牌token粘贴到公网页面的对应输入框点击连接。这时可能又出现一条提示此设备需要网关主机的配对批准。这是设备级授权需要在终端里批准。执行openclaw devices list openclaw devices approve requestId把requestId换成 list 命令输出里的实际 id 字符串。批准后回到概览页面健康状态显示“正常”错误提示消失就可以正常对话了。3.5 用 settings 片段固化配置如果你希望把上面的配置固化下来避免每次手动改可以在 OpenClaw 的配置里维护一段结构。下面是一个 settings 风格的片段示例路径和字段名以你本地实际配置文件为准{ gateway: { controlUi: { allowedOrigins: [ https://你的穿透域名 ] } }, model: { baseUrl: https://taotoken.net/api, apiKey: 你的TaoToken密钥, model: 你的ModelID } }把这段写进对应配置文件后重启网关效果和逐条执行 config set 命令一致但更便于版本管理和迁移。注意 apiKey 属于敏感信息不要提交到公开仓库。4. 外网访问验证与成功结果确认配置做完不代表真的通了必须从外网实际验证一遍。这一节给你一份完整的动作清单按顺序执行每一步都有明确的预期结果。第一步断开本地网络环境的影响。最稳妥的验证方式是用手机流量关掉 WiFi打开穿透出来的 https 地址。如果手机能打开控制台登录页说明公网链路是通的。用同一台电脑的浏览器验证有时会被本地缓存或 hosts 干扰不够干净。第二步输入网关令牌并连接。预期结果是健康状态显示“正常”。如果一直卡在“需要配对批准”回到终端执行 devices list 和 approve确认 requestId 没填错。第三步发一句测试对话。比如问“现在几点”或者“帮我写一个 Python 的 hello world”。预期结果是模型正常返回内容。如果返回为空或者报错先看是不是 Model ID 填错了再检查 Base URL 是否为https://taotoken.net/api。第四步验证远程桌面场景可选。如果你同时配了 3389 的 TCP 隧道在 Windows 上按 Win R 输入mstsc在计算机栏填入 cpolar 给的 TCP 地址去掉tcp://前缀输入家里电脑的用户名密码能连上桌面就说明 TCP 隧道也正常。第五步验证文件或服务类场景。比如你家里 NAS 上跑了 OpenList可以让 OpenClaw 帮你把局域网地址穿透出去拿到公网链接后在手机浏览器打开能播放视频就说明这类服务穿透也没问题。实测下来最容易出问题的环节是第三步的模型调用。因为穿透层一旦通了控制台能打开人就会默认“全都好了”但模型调用是另一条链路依赖 Base URL、Key、Model ID 三件套。建议把本地验证和外网验证分开做本地先确认模型能回再穿透这样定位问题快很多。成功的结果长这样手机流量下打开 https 地址输入令牌健康状态正常发消息有回复整个过程不需要连家里 WiFi。到这一步你的 OpenClaw 才算真正“随身”了。5. 本篇常见报错排查401、local proxy failed、reading choices、OAuth这一节把配置过程中最常撞到的几个报错集中处理。每个报错我都给出触发原因和对应动作你可以直接对号入座。报错一401 Unauthorized这是模型调用层最常见的错误出现在对话时而不是打开页面时。原因通常是 API Key 不对、过期或者 Base URL 和 Key 不匹配。排查顺序先确认 Key 是从 TaoToken 控制台复制的完整字符串没有多余空格再确认 Base URL 是https://taotoken.net/api没有拼错或加多余路径最后确认这个 Key 在控制台里状态正常、额度充足。三件套里任何一项错都会导致 401。报错二local proxy failed这个报错通常出现在 cpolar 隧道层意思是本地代理连接失败。常见原因是 OpenClaw 服务没起来或者隧道指向的本地端口和 OpenClaw 实际监听端口不一致。排查先在本地浏览器打开http://127.0.0.1:18789确认服务本身活着再回 cpolar 隧道列表确认本地地址填的是同一个端口。端口对不上隧道再正常也连不到服务。报错三reading choices 相关错误这类错误一般出现在模型返回结构解析阶段提示读取 choices 字段失败。原因多半是 Base URL 指向了一个不兼容 OpenAI 格式的接口或者 Model ID 填了一个该入口不支持的模型。处理方式确认 Base URL 用统一入口Model ID 用入口支持的模型标识不要混用不同厂商的模型名。报错四OAuth 相关报错如果你在配置里启用了某种 OAuth 授权流程可能会遇到 token 获取失败或回调地址不匹配。这类问题通常和穿透域名有关OAuth 回调需要固定域名而 cpolar 免费版的随机域名每 24 小时变一次回调地址一变就失败。解决办法是配置固定二级子域名把回调地址固定下来。这也是下一节要讲的内容。报错五origin not allowed前面已经讲过这里再强调一次改完 allowedOrigins 一定要执行openclaw gateway restart只改配置不重启不生效。另外域名要带https://前缀且和实际访问地址完全一致差一个字符都会继续报错。排查这类问题的通用思路是分层先确认本地服务活着再确认隧道通最后确认模型调用通。三层里哪层断了报错信息其实指向很明确不要一上来就怀疑最复杂的部分。6. 固定二级子域名与长期可用方案cpolar 免费版给的公网地址是随机的每 24 小时换一次。偶尔用用无所谓但如果你想把地址存进手机书签、分享给家人或者像上一节说的要固定 OAuth 回调地址就必须换成固定二级子域名。操作路径是进入 cpolar 的预留页面选择“保留二级子域名”填写地区、名称、描述。名称就是你想用的子域名前缀比如openclaw。保留成功后回到隧道列表编辑那条 openclaw 隧道把域名类型改成“二级子域名”填入刚保留的名称更新。更新完成后在线隧道列表里的地址会变成https://openclaw.cpolar.top这种固定形式。这时候需要重新放行一次域名因为地址变了openclaw config set gateway.controlUi.allowedOrigins [\https://openclaw.cpolar.top\] --strict-json openclaw gateway restart重启后重新输入网关令牌、批准设备就能用固定地址稳定访问了。这个地址不会再变可以放心收藏。关于长期可用还有几点值得注意。一是安全OpenClaw 有读取文件和执行系统命令的能力穿透到公网后网关令牌就是最后一道门。令牌不要发在公开群组不要截图分享定期更换。二是模型通道把 TaoToken 的三件套固化在配置里换模型时只改 Model ID不用动 Base URL 和 Key维护成本低。三是如果你后面要做更复杂的编码或 Agent 任务可以考虑用 Coding Plan 这类长期方案把调用额度和通道稳定下来避免频繁切换。到这里从本地部署到公网可用、从随机地址到固定域名、从多套密钥到统一通道整条链路就闭环了。你可以先把固定域名配好再把地址加到手机主屏之后打开它就和打开一个普通网站没区别。需要生成 Key 或查看接入细节的话可以从 API Keys 页面和控制台入手把三件套填进配置剩下的交给 OpenClaw 自己跑就行。