logo NodeSeekbeta

WSL 内 Codex 无法联网(stream disconnected / 401)问题排查与修复

我常用的是Windows主机,Windows 主机通过CC Switch + 中转站的方式 调用 Codex API,但在VScode的 WSL内运行codex拓展时报stream disconnected before completion: error sending request for url (https://api.openai.com/v1/responses),或 401 Unauthorized: Incorrect API key provided: sk-...这种错误xhj011
下面是我的排查过程和修复方法,希望可以帮到大家

一、排查过程:error sending request说明请求根本没发出去(连接建立阶段失败),重试几次发现是401报错unexpected status 401 Unauthorized,仔细看才发现是WSL的Codex使用的配置不是Windows下的那份经过CC switch修改的,然就直连到了openAI,被墙了

二、修复措施 xhj001 :

  1. 让WSL共用 Windows 网络栈(mirrored 模式)
networkingMode=mirrored
dnsTunneling=true
  1. 在 WSL 里装 Linux 原生 node
cd ~
# 取最新 Node 22 LTS 版本号
VER=$(curl -fsSL https://nodejs.org/dist/index.json | grep -o '"version":"v22[^"]*"' | head -n1 | cut -d'"' -f4)
curl -fsSL "https://nodejs.org/dist/$VER/node-$VER-linux-x64.tar.xz" -o node.tar.xz
tar -xf node.tar.xz
export PATH="$HOME/node-$VER-linux-x64/bin:$PATH"
node --version   # 应输出 v22.x.x
  1. 在 WSL 里装 Linux 原生 codex
# 设用户级 prefix,避免 /usr/local 权限问题
npm config set prefix ~/.npm-global
export PATH="$HOME/.npm-global/bin:$PATH"
npm install -g @openai/codex@latest

# 持久化 PATH(node + codex)
echo 'export PATH="$HOME/node-'$VER'-linux-x64/bin:$HOME/.npm-global/bin:$PATH"' >> ~/.bashrc

# 验证:第一条必须是 Linux 路径,不能带 /mnt/c/
which -a codex
codex --version   # 应正常出版本号,如 codex-cli 0.146.0
  1. 写入 WSL 的 custom provider 配置
model_provider = "custom"
model = "gpt-5.6-sol"

[model_providers.custom]
name = "My Codex"
base_url = "http://127.0.0.1:15721/v1"   # 与 Windows 一致,mirrored 下即 Windows 的 CC Switch
wire_api = "responses"
requires_openai_auth = true
experimental_bearer_token = "PROXY_MANAGED"

三、验证成功 xhj003
ujc6hoHZg4sI35WG99D6IE0RbJKzaLR8.webp

12
  • 帅

  • 不知道能不能通过端口在codex gui里用ssh连接()

  • @lanhai #1 嘿嘿,主要是我发现我的工程放在WSL环境下编译更快,不然也不想折腾

  • codexApp支持wsl映射的windows目录

  • @Farewe1ll #2 应该是可行的,WSL + SSH + GUI,就要看看本地回调服务器在 WSL 的网络环境下可能

  • 我也是wsl里直接安装的codex cli,如果用chatgpt plus认证的话需要开TUI模式,但是认证之后可以直接在 ~/.codex/.env 写环境变量的方式,让codex的网络请求走代理

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

    主要是早前各家LLM在win下使用经常默认执行bash命令,太弱智了,所以我就把所有的agent都直接装wsl下面了

  • @katharsis #4 是codex桌面版不?回头也试试,现在一直在使用VSCode拓展或者codex cli

  • @Xander #6 这个倒是一劳永逸的办法哦 xhj003

  • @Andybe #7 是的,桌面端codex(chatgpt)可以直接访问你windows中映射子linux的磁盘

  • @katharsis #9 感谢提醒,我使用codex桌面端之后直接粘贴wsl的工程地址后确实可以直接添加为工程 xhj016

12

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有72267位seeker

🎉欢迎新用户🎉