1. 先搞清楚 origin not allowed 到底拦了什么你在 Ubuntu 上跑完openclaw onboard --install-daemon用 socat 把 18790 转发到 127.0.0.1:18789浏览器打开http://192.168.178.101:18790结果页面直接甩你一句origin not allowed (open the Control UI from the gateway host or allow it in gateway.controlUi.allowedOrigins)。这不是端口没通也不是 Token 错了而是 gateway 的 Control UI 做了一层来源校验它认为你当前访问的 Origin 不在白名单里于是拒绝渲染控制台。Control UI 是 OpenClaw 的网页控制台用来查看 gateway 状态、会话、日志和配置。它默认只信任「从 gateway 本机直接打开」的场景也就是浏览器地址栏是127.0.0.1:18789这种。一旦你通过局域网 IP、域名或反向代理进来Origin 就变成了http://192.168.178.101:18790和 gateway 预期的来源对不上于是触发拦截。这个报错适合所有把 OpenClaw 跑在虚拟机、NAS、云主机上又想用另一台电脑浏览器访问的人。我试过最省事的做法不是去关校验而是把真实访问来源明确写进allowedOrigins让 gateway 知道「这个来源是我允许的」。下面按「先配 TaoToken 统一通道 → 再改 gateway 配置 → 再验证放行」的顺序走一次改对。2. 用 TaoToken 统一 Key 与 API 通道在动 gateway 配置之前先把 AI 工具的接入通道理顺。OpenClaw 这类工具在跑 Agent、调用模型时往往需要填 API Key 和 Base URL。如果你每个工具各配一套 Key后面排查问题时很难判断是 gateway 的锅还是 Key 的锅。TaoToken 的作用就是给你一个统一的 Key 和 API 入口模型对话、编码计划、控制台都在同一套体系里。官网入口在这里https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。API 基址是 https://taotoken.net/api 注意这个地址不带 UTM 参数配置时直接填。具体操作分三步。第一步进控制台创建 Key地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 在 API Keys 页面生成一个 Key 并复制保存地址是 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。第二步如果你要验证模型是否通用模型对话页面直接发一条消息地址是 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite 能正常返回就说明 Key 和通道没问题。第三步如果你打算长期跑编码或 Agent 任务用 Coding Plan 页面管理额度与套餐地址是 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。把 Key 和 Base URL 记下来后面在 OpenClaw 里填模型通道时直接用。这样做的价值是当 Control UI 报 origin not allowed 时你能确定模型通道本身是好的问题只出在 gateway 的来源校验上排查范围立刻缩小。3. gateway.controlUi.allowedOrigins 配置骨架OpenClaw 的 gateway 配置在~/.openclaw/openclaw.json。注意是 JSON 文件不是 TOML网上有些说法写成 config.toml实际以你安装版本生成的路径为准。核心是往gateway节点里合并controlUi和trustedProxies千万不要把整个文件替换掉只做合并。先备份再改cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak nano ~/.openclaw/openclaw.json在gateway对象里加入下面这段如果已有gateway节点只把里面的键合并进去{ gateway: { controlUi: { allowedOrigins: [ http://192.168.178.101:18790, http://127.0.0.1:18789, http://localhost:18789 ], allowInsecureAuth: true, dangerouslyDisableDeviceAuth: true, dangerouslyAllowHostHeaderOriginFallback: true }, trustedProxies: [127.0.0.1] } }几个参数的含义要清楚别照抄完不知道为什么参数作用建议allowedOrigins明确放行的来源列表填你浏览器实际访问的完整 Origin含协议和端口allowInsecureAuth允许非 HTTPS 场景下的认证内网 HTTP 访问时需要dangerouslyDisableDeviceAuth关闭设备认证校验仅内网调试用公网别开dangerouslyAllowHostHeaderOriginFallbackHost 头回退推断 Origin配合反代/socat 时有用trustedProxies信任的代理地址socat 在本机转发填 127.0.0.1保存退出CtrlO→Enter→CtrlX。这里最容易踩的坑是 Origin 写错。Origin 的格式是协议://主机:端口不带路径、不带结尾斜杠。你浏览器地址栏是http://192.168.178.101:18790那 allowedOrigins 里就必须是这一模一样的字符串写成192.168.178.101:18790缺协议或带/都不会匹配。4. socat 转发与防火墙放行gateway 默认监听 127.0.0.1:18789只对本机开放。你要从 Windows 浏览器访问 Ubuntu 虚拟机就需要 socat 把外部 18790 转发到本机 18789。用 systemd 做成常驻服务避免每次手动起。sudo apt install socat -y sudo tee /etc/systemd/system/socat-18790.service /dev/null EOF [Unit] DescriptionSocat port forward 18790 to openclaw 18789 Afternetwork.target [Service] Typesimple ExecStart/usr/bin/socat TCP-LISTEN:18790,bind0.0.0.0,fork,reuseaddr TCP:127.0.0.1:18789 Restartalways RestartSec3 [Install] WantedBymulti-user.target EOF sudo systemctl daemon-reload sudo systemctl enable socat-18790 sudo systemctl start socat-18790放行防火墙端口sudo ufw allow 18790/tcp sudo ufw status确认 socat 服务在跑systemctl status socat-18790 --no-pager ss -tlnp | grep 18790ss输出里应该能看到0.0.0.0:18790处于 LISTEN 状态。如果只有127.0.0.1:18790说明 bind 没生效检查 service 文件里的bind0.0.0.0是否写对。5. 重启 gateway 并验证放行配置改完必须重启 gateway 才会重新读取openclaw gateway restart然后从 gateway 本机先自测确认服务本身正常curl -I http://127.0.0.1:18789返回 200 或 302 都算通。接着从你的 Windows 浏览器打开http://192.168.178.101:18790如果之前是 origin not allowed现在应该能进 Control UI 登录页。如果还报错按下面顺序查。第一确认 Origin 字符串完全一致。打开浏览器开发者工具 Network 面板看请求头里的Origin字段到底是什么把它原样复制进 allowedOrigins。第二确认改的是 gateway 正在读的那个配置文件有些安装会读~/.config/openclaw/下的副本用openclaw gateway status看它加载的路径。第三确认重启生效openclaw gateway restart后看日志有没有报 JSON 解析错误配置写坏会导致 gateway 起不来。验证模型通道是否也通可以在 Control UI 里发一条测试消息或者回到 TaoToken 的模型对话页面确认 Key 有效https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite 。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面有 Base URL 和鉴权头的写法。6. 常见报错排查清单改了配置但报错不变八成是没重启 gateway或者改错了文件。先openclaw gateway restart再openclaw gateway status确认加载路径。JSON 格式错误导致 gateway 起不来用python3 -m json.tool ~/.openclaw/openclaw.json校验语法逗号、引号最容易出错。校验通过再重启。Origin 带了路径或斜杠allowedOrigins 里只能写协议://主机:端口不能带/或查询参数。浏览器地址栏有路径不影响 OriginOrigin 本身不含路径。socat 转发不通ss -tlnp | grep 18790看监听地址必须是0.0.0.0。再看 ufw 是否放行sudo ufw status确认 18790/tcp 是 ALLOW。换端口后又要改一遍allowedOrigins 和 socat 的端口是绑定的你换 18790 为别的端口两处都要同步改否则又回到 origin not allowed。公网暴露风险dangerouslyDisableDeviceAuth和allowInsecureAuth只适合内网调试。要长期用建议走 HTTPS 反代把 Origin 写成https://你的域名并关掉这两个危险开关。排查完这些Control UI 基本就能从 gateway host 正常访问了。核心就一句话Origin 必须和 allowedOrigins 里的字符串逐字符一致改完必须重启 gateway。
企业数字化 ERP 产品动态
相关推荐
分清Agent/Subagent/Skills/Harness:用TaoToken统一Key跑通四层概念验证 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 16:16:31
用TesseractOCR+Python实现表格自动转CSV的完整方案 简介:这是一套面向实验室报告和学术论文的OCR表格自动提取工具,基于TesseractOCR与Python开发,主要帮助科研人员、研究生和数据录入者从图像或PDF中快速定位并提取表格数据。工具内部串联图像预处理、文字识别、表格结构分析三个环节… · 2026/9/26 16:16:31
Python图像识别自动化:FGO-py脚本从设计到实战 1. 为什么我会去折腾FGO的自动化脚本玩FGO(《命运/冠位指定》)的朋友都懂,这游戏什么都好,就是刷本太精污。无限池、素材本、狗粮本,一刷就是几百把,手指头点得比上班敲键盘还累。我大概是在日服某次无限池… · 2026/9/26 16:16:31
本地照片管理器Lap深度评测:为什么这款离线工具值得你立刻安装 本地照片管理器Lap深度评测:为什么这款离线工具值得你立刻安装 【免费下载链接】lap An offline-first photo manager for large local libraries 项目地址: https://gitcode.com/GitHub_Trending/lap3/lap
Lap 是一款开源免费的本地照片管理器,专… · 2026/9/26 20:21:20
固定电话正则校验实战:从规则到代码,避开线上常见坑 做前端表单的人,迟早会遇到一个需求:校验用户填的固定电话。你搜索“JS固定电话正则”,网页里跳出来一大串表达式,复制到项目里,测试“010-12345678”,通过了。结果上线第二天,用户反馈“0755 1… · 2026/9/26 20:21:02
Substrate 区块链开发框架详解:从状态机到应用链的模块化实践 过去半年里,我花了不少时间在 Substrate 上,尤其是给不同业务方搭定制化的应用链,期间被问得最多的就是一句话:“Substrate 到底是什么?它是一条链还是一个框架?”每次我都得从状态机讲到 Runtime 再讲到 p… · 2026/9/26 20:20:49
Substrate不是AI Agent框架:区块链与Agent技术栈的本质区分 1. Substrate不是AI Agent框架,而是区块链底层构建平台的误读源头最近在多个技术社区和招聘JD里反复看到“Substrate”和“Agent”被混为一谈——有人问“Substrate怎么集成AI Agent”,也有人把gVisor、Kubernetes Device Plugin和Substrate全塞进同一份… · 2026/9/26 20:20:49
AI短剧工业化流水线:从剧本到成片的全链路控制 1. 这不是“一键生成”,而是真正能落地的AI短剧生产流水线最近三个月,我帮七家不同背景的团队落地了AI短剧项目——有刚转型的新媒体公司、有做儿童内容的教育品牌、也有想试水IP孵化的独立创作者。他们共同的问题不是“能不能做”,而是“怎么… · 2026/9/26 20:20:49
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46