news 2026/10/24 2:11:45

WebCodex 排障实录:Windows + OpenAI Secure MCP Tunnel 独立部署与常见坑

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
WebCodex 排障实录:Windows + OpenAI Secure MCP Tunnel 独立部署与常见坑

WebCodex 排障实录:Windows + OpenAI Secure MCP Tunnel 独立部署与常见坑

【免费下载链接】webcodexGive cloud AI agents a real development environment on your own machines.项目地址: https://gitcode.com/gh_mirrors/web/webcodex

这是一篇面向新手的WebCodex Windows 部署排障实录:完整记录如何用 WebCodex + OpenAI Secure MCP Tunnel 让 ChatGPT 安全地操作你 Windows 本机项目,并汇总了实测踩过的网络、版本、重启动作三大常见坑。全文按“部署 → 验收 → 排障”顺序展开,照着做即可。

先看懂整体拓扑:两条链路互不干扰

WebCodex 的核心思路是:AI 在云端,代码和工具在你自己的机器上。部署完成后存在两条完全独立的链路:

  1. ChatGPT → Server:ChatGPT 通过 OpenAI Secure MCP Tunnel 访问本机 Server 的/mcp端点。这是"AI 入口"。
  2. Runner → Server:本机 WebCodex Runner 通过 WebSocket 连接 Server,真正负责读写你的项目目录。这是"执行端"。

记住这个边界能帮你避开一半的坑:

  • ChatGPT 侧永远不需要看到 WebCodex 的 Bearer 令牌——Tunnel 在本机注入,ChatGPT 里选"无身份验证"即可;
  • Tunnel 只解决 AI 到 MCP 的私有传输,不影响Runner 的工作方式;
  • Server 只监听127.0.0.1,不对公网暴露任何端口。

💡 如果只是临时分享一个仓库,直接用webcodex share --tunnel openai一条命令即可,无需本文的手工拓扑。

部署前的 3 个关键准备

坑 1(提前排掉):CLI、Server、Runner 必须同版本

这是最容易被忽视的坑。三个组件来自不同版本时,网络问题会伪装成各种诡异现象。先跑三个--version命令确认一致,再开始排网络:

webcodex --version webcodex-server --version webcodex-runner --version

创建 Tunnel 与受限 API key

在 OpenAI 平台的Tunnels 页面创建一条 Tunnel 并记录完整 ID,再创建 API key。⚠️ 强烈建议使用Restricted key,只授予 Tunnels 的Read + Use权限,不要给 All 权限:

在 Windows 用户环境中配置两个变量(具体格式见 deploy/webcodex.env.example):

CONTROL_PLANE_TUNNEL_ID CONTROL_PLANE_API_KEY

WebCodex 已内置原生 Rust Tunnel client,无需再安装任何外部 tunnel 二进制。

Windows 前台部署:Server + Runner 两个终端

Windows 当前支持前台 Server runtime——需要保持终端开启。三个终端各跑一个进程:

终端 1 — 初始化并启动 Server(使用独立 env/data 路径,别覆盖已有 runtime):

webcodex server init --listen 127.0.0.1:18080 --data-dir $dataDir --env-file $envFile --json webcodex server run --env-file $envFile

看到下面两行说明本地 MCP 就绪:

Listening on: 127.0.0.1:18080 MCP endpoint: http://localhost:18080/mcp

终端 2 — 配对并启动独立 Runner:先用webcodex pairing create生成短期配对码(TTL 600 秒),再在 Runner 侧兑换,同时注册要暴露给 AI 的仓库,并把允许范围限制到真实父目录:

webcodex login http://127.0.0.1:18080 --code <wc_pair_...> --allowed-root C:\src --project C:\src\your-repository --json webcodex runner run --config <login 返回的 runner_config 路径>

终端 3 — 启动原生 Tunnel:

webcodex server tunnel --provider openai --env-file $envFile

原生 client 会先验证本地/mcp鉴权、再成功完成一次控制面 poll,才会报告就绪。它不再下载外部二进制、不跑 doctor 子进程、也不开放/readyz端口。

验证"两个绿灯":tunnel_ready ≠ ChatGPT 已连通

⚠️ 这是排障中最容易误判的一点。健康事件里有两个独立指标:

指标证明什么不能证明什么
local_mcp_ready: true本机/mcp端点鉴权可用Tunnel 控制面健康
tunnel_ready: true原生 client 完成了一次成功的控制面 pollChatGPT Connector 已创建、工具已加载

所以"进程启动了""两个绿灯亮了"都不算成功。真正的验收必须走到 ChatGPT 侧。

在 ChatGPT 创建 Connector:三步 + 一个"无身份验证"

  1. 在 ChatGPT 账户安全设置中开启开发人员模式(界面支持简体中文):

  1. 打开插件页面创建新插件:连接方式选隧道 / Tunnel,选择对应的 WebCodex Tunnel,身份验证选无身份验证 / No authentication(因为 Bearer 已由本机 Tunnel client 注入,ChatGPT 不应拿到它),确认风险提示后创建;
  2. 创建并授权连接后,在插件详情页可以扫到apply_text_edits等 WebCodex 工具:

  1. 如果当前对话没出现新工具,先刷新 ChatGPT 窗口再试。

端到端验收清单:别把"进程启动了"当成功

层级应看到的证据
Windows Serverloopback 监听正常,/mcp可达
Runneractual_transport=websocket,Runner online
本地 MCPlocal_mcp_ready: true
原生 Tunnel成功完成一次 poll 后tunnel_ready: true
ChatGPTConnector 创建成功并 Scan 出工具
Project / Readlogin 阶段注册的 Project 可见,能通过 Connector 读取仓库文件
Write专用分支写入改动,并用 Git diff 复核

最后三项才证明这套 Windows + Tunnel 拓扑真正具备和普通 Server + Runner 一样的开发体验。

排障实录:真实环境踩过的 3 个坑

坑 2:本地 MCP 全绿,Tunnel 却连不上 —— 网络代理问题

实测中遇到的最典型故障:本地/mcp初始化正常、健康检查 200,但 OpenAI 控制面 poll 持续失败。原因是Windows 进程没有继承浏览器的代理路由,api.openai.com的直连 DNS/IPv6 路径不可用。

解决办法——只把控制面路由到代理,本地 MCP 始终绕过代理:

# CLI 方式:给 Tunnel 指定控制面代理 webcodex server tunnel --provider openai --control-plane.http-proxy http://127.0.0.1:7890 ... # 或设置标准 HTTPS_PROXY / NO_PROXY 环境变量

如果使用 Desktop,则在设置 → OpenAI Tunnel 网络中选择代理方式,保存后重启 Tunnel 即可:

排障结论沉淀成一条经验:浏览器能上网、本地 MCP 可达,都不能证明控制面 poll 健康——必须看 Tunnel 日志里的 metadata/poll 状态。

坑 3:上次运行状态不确定,Tunnel 拒绝重启

原生 client 有"防重放"设计:若上次运行存在不确定工作(崩溃、未确认的 MCP 交换等),私有的webcodex/tunnel-runs运行标记会阻止重启。

正确处理顺序:先处理之前执行的效果和待处理请求→ 再清除标记或换用新的 Tunnel identity。不要用"换个状态目录绕过标记"的方式硬重启,那违背了 no-replay 契约。详细说明见 crates/webcodex-openai-tunnel/README.md。

常见误区速查

误区事实
tunnel_ready: true就代表 Connector 可用只证明 poll 成功,ChatGPT 层要单独验证
ChatGPT 需要填写 WebCodex BearerTunnel 模式选No authentication,Bearer 留在本机
Windows 必须用 WSL 或 Windows Service前台 Server + 前台 Runner 即可;代价是关终端即停进程
share --tunnel openai与手工拓扑是两套东西核心链路相同(本地 MCP + Bearer 注入 + 原生 client),share只是自动管理临时 Server/Runner
把 token 贴进 issue 或截图求帮助严禁泄露 Tunnel ID、API key、Bearer;反馈前先脱敏

参考文档

  • Windows + OpenAI Secure MCP Tunnel 实操指南(完整命令版)
  • Desktop 快速安装与 ChatGPT 连接(普通用户推荐路径)
  • Tunnel 原生 client 契约与运行标记说明
  • 通用故障排查(分层定位请求是否到达 WebCodex)
  • 完整个人部署指南

【免费下载链接】webcodexGive cloud AI agents a real development environment on your own machines.项目地址: https://gitcode.com/gh_mirrors/web/webcodex

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/15 8:59:59

AI编程智能体实战:从零搭建自动化开发流程与避坑指南

1. 为什么“AI 编程智能体”值得普通程序员认真对待1.1 从“写代码”到“指挥智能体写代码”的转变过去十几年&#xff0c;程序员的日常基本围绕三件事转&#xff1a;查文档、写代码、调 Bug。写代码这件事本身&#xff0c;占据了大量时间&#xff0c;尤其是重复性的 CRUD、接口…

作者头像 李华
网站建设 2026/10/19 2:22:38

题解:洛谷 P1328 [NOIP 2014 提高组] 生活大爆炸版石头剪刀布

本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。 欢迎大家订阅我的专栏:算法…

作者头像 李华
网站建设 2026/10/15 8:59:59

text-to-cad 实战:从文本描述到 STEP/STL/GLB 三维模型生成

1. 从一段文字到三维模型&#xff1a;text-to-cad 到底在解决什么问题第一次听到 text-to-cad 这个词&#xff0c;我脑子里蹦出来的画面是&#xff1a;对着电脑敲一句“给我画一个长宽高 1006030 毫米、四角带 M4 沉头孔的法兰底座”&#xff0c;然后屏幕上直接出现一个可以旋转…

作者头像 李华
网站建设 2026/10/14 21:04:05

FVD跟驰模型代码实战指南:从环道仿真到参数辨识

简介&#xff1a;本资源是一份面向交通工程研究者与智能交通系统开发者的FVD跟驰模型仿真代码包&#xff0c;聚焦交叉口场景下的车辆动态行为建模与信号控制影响分析。压缩包仅含1个MATLAB源文件&#xff08;duochedao.m&#xff09;&#xff0c;体积仅3KB&#xff0c;代码实现…

作者头像 李华
网站建设 2026/10/15 8:58:13

基于eFuse与MCU的工业电源智能保护系统设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/15 10:52:10

从WinRT到KMDF:Sensy源码包打通Windows I2C传感器驱动全链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华