记录一下Codex CLI及Codex App重连5次问题修复记录

jancehui 2026-06-25 17:16 1

背景


在 Windows 本机使用 Codex 时,Codex CLI 经常出现反复重连:


reconnecting 5 times

本机访问外网需要经过本地代理,代理由 v2rayN / xray 提供,HTTP 代理端口是:


127.0.0.1:10808

一开始尝试过全局设置 HTTP_PROXY / HTTPS_PROXY,但会影响 Codex App 的用量查看、插件等功能。因此最终目标是:只让 Codex CLI 稳定走代理,不污染系统全局代理,也尽量不影响 Codex App。


基础环境








































项目 说明
操作系统 Windows
终端 PowerShell
工具 Codex App、Codex CLI
本地代理 v2rayN / xray
代理地址 http://127.0.0.1:10808
Codex 配置目录 C:\Users\15564\.codex
最终配置文件 C:\Users\15564\.codex\.env

解决方案


最终方案是在 Codex 配置根目录新增 .env 文件:


C:\Users\15564\.codex\.env

文件内容:


HTTP_PROXY=http://127.0.0.1:10808
HTTPS_PROXY=http://127.0.0.1:10808
ALL_PROXY=http://127.0.0.1:10808
NO_PROXY=localhost,127.0.0.1,::1

注意:HTTPS_PROXY 这里也写 http://127.0.0.1:10808,表示通过本地 HTTP 代理转发 HTTPS 请求,不是写成 https://127.0.0.1:10808


这个方案的好处:



  • 不改 Windows 系统全局代理。

  • 不影响 Codex App 的用量和插件功能。

  • 不需要额外维护 PowerShell 包装函数。

  • Codex CLI 启动后能自动读取自己的代理环境。


排查问题及解决过程


这次没有直接重装 Codex,也没有先改系统全局代理,而是先确认问题到底出在 Codex CLI 连接链路上。


1. 确认本地代理可用


先检查本机代理端口是否正常监听:


Get-NetTCPConnection -LocalPort 10808 -ErrorAction SilentlyContinue

确认 127.0.0.1:10808 处于监听状态,并且监听进程是 xray。这说明本地代理本身是可用的,问题更可能是 Codex CLI 没有正确使用代理。


2. 确认 Codex CLI 没有独立代理参数


再查看 Codex CLI 的帮助信息:


codex --help

当时确认 Codex CLI 没有单独的 --proxy 参数,所以不能通过命令参数直接指定代理,只能通过环境变量处理。


3. 临时注入代理验证


先在当前 PowerShell 会话临时注入代理环境变量:


$env:HTTP_PROXY  = "http://127.0.0.1:10808"
$env:HTTPS_PROXY = "http://127.0.0.1:10808"
$env:ALL_PROXY = "http://127.0.0.1:10808"
$env:NO_PROXY = "localhost,127.0.0.1,::1"

codex doctor --summary --ascii --no-color

这一步验证通过后,websocketreachability 都正常,说明 reconnecting 5 times 的核心原因就是 Codex CLI 没有稳定走本机 HTTP 代理。


4. 固化为 .env 配置


临时环境变量只能影响当前 PowerShell 会话,不能作为长期方案。中间曾用过 codexp PowerShell 包装函数临时解决。


codexp 的思路是:执行 Codex CLI 前先设置代理环境变量,执行结束后再恢复原来的环境变量。这样可以做到只影响 Codex CLI 子进程,不改 Windows 全局代理。


示例逻辑如下:


function codexp {
$oldHttpProxy = $env:HTTP_PROXY
$oldHttpsProxy = $env:HTTPS_PROXY
$oldAllProxy = $env:ALL_PROXY
$oldNoProxy = $env:NO_PROXY

try {
$env:HTTP_PROXY = "http://127.0.0.1:10808"
$env:HTTPS_PROXY = "http://127.0.0.1:10808"
$env:ALL_PROXY = "http://127.0.0.1:10808"
$env:NO_PROXY = "localhost,127.0.0.1,::1"

codex @args
} finally {
$env:HTTP_PROXY = $oldHttpProxy
$env:HTTPS_PROXY = $oldHttpsProxy
$env:ALL_PROXY = $oldAllProxy
$env:NO_PROXY = $oldNoProxy
}
}

使用方式:


codexp doctor --summary --ascii --no-color

当时验证结果正常,说明“只给 Codex CLI 子进程注入代理”的方向是可行的。但这个方案依赖 PowerShell profile,换终端或换启动方式时不一定生效,而且还需要记住使用 codexp 而不是 codex


最终改为把代理变量写入:


C:\Users\15564\.codex\.env

这样 Codex CLI 能自动读取配置,不需要每次手动设置,也不会影响系统全局代理。


验证方式


配置完成后,重启 Codex CLI,执行:


codex doctor --summary --ascii --no-color

重点看:


websocket     ok
reachability ok

如果 websocketreachability 正常,并且不再出现 reconnecting 5 times,说明配置生效。


回滚方式


如果后续网络环境变化,不再需要本地代理,删除或重命名这个文件即可:


C:\Users\15564\.codex\.env

然后重启 Codex CLI,再执行 codex doctor 验证。


结论


这次问题的根因是 Codex CLI 没有稳定走本机 HTTP 代理。最终通过 C:\Users\15564\.codex\.env 固定代理环境变量,解决了 CLI 重连 5 次的问题,同时避免了全局代理影响 Codex App。

最新回复 (5)
  • Ma1r6K 06-25 17:19
    1

    原来是这样,我是说之前怎么经常遇到类似的情况

  • Neptune 06-25 17:47
    2
    在.codex目录下(通常在c盘,对应用户文件夹下)新建一个.env文件内容为

    HTTP_PROXY="http://127.0.0.1:梯子端口"
    HTTPS_PROXY="http://127.0.0.1:梯子端口"
    NO_PROXY="localhost:127.0.0.1"

    就可以了

    Codex app重连很好解决

  • Demorain 06-25 19:44
    3

    我看别的佬说的是改这个?我还没试过官号重连5次,就没试过



    下面开始修复过程

    一、sanboxBUG

    解决办法参考了openai的issues-29089中的评论,具体操作如下

    1、删除.env中的配置,详情如下:

    .env的路径为


    C:\Users\你的用户名(一般是My)\.codex\.env


    要删掉的配置内容为:


    HTTP_PROXY=“xxx”
    HTTPS_PROXY=“xxx”
    NO_PROXY=“xxx”
    ALL_PROXY=“xxx”


    2、修改setup_marker.json中内容:

    setup_marker.json的路径为


    C:\Users\你的用户名(一般是My)\.codex\.sandbox\setup_marker.json


    原内容


    "proxy_ports": [xxx]


    改为


    "proxy_ports": []


    以上就能解决sanbox问题。


    二、reconnect5次的BUG

    修改.env后,部分用户会重新遇到reconnect5次的BUG,因为你之前是通过.env配置来跳过websocket

    于是新bug解决办法是修改config.toml,修改如下:


    model_provider = “chatgpt_http” #自定义,我这里是chatgpt_http

    [model_providers.chatgpt_http] #.chatgpt_http必须与上面自定义相同
    name = “OpenAI” # 你自己喜欢啥名就啥名
    base_url = “https://chatgpt.com/backend-api/codex”
    wire_api = “responses”
    requires_openai_auth = true
    supports_websockets = false
    stream_idle_timeout_ms = 300000

  • 泡面 06-25 20:12
    4

    ^-^你肯定有个不喜欢细节阅读的坏习惯。

  • Demorain 06-25 20:37
    5

    啊哈哈哈被发现了,确实没注意看,主要是目前遇到的问题暂时不是佬帖子写的问题,就没怎么尝试了,目前我遇到大部分问题都是公益站连不上的情况,官号确实没怎么遇到这些问题,主要还是tm的官号额度越来越少了,蹬得比较少

* 帖子来源Linux.do
返回