客户端教程问题解答Codex 专题

Windows 和 WSL 里 Codex 怎么走代理?

Windows 下 Codex 通过 PowerShell 环境变量走代理;WSL 中 127.0.0.1 默认指向 WSL 自身,需要指向宿主机 IP 并在客户端开启允许局域网连接,或使用 TUN 模式。本文给出两种环境的设置方法。

直接答案

Windows 原生环境下,在 PowerShell 中设置 HTTPS_PROXY 指向 Clash Verge Rev 的本地端口即可。WSL 中的 127.0.0.1 默认是 WSL 自己,代理地址需要改成宿主机 IP,同时在客户端开启允许局域网连接;也可以直接开启 TUN 模式,让宿主机与 WSL 的流量一起走代理。

目录

在 Windows 原生环境运行 Codex,只需要在 PowerShell 中设置 HTTPS_PROXY 指向 Clash Verge Rev 的本地端口。在 WSL 里运行时要多一步:WSL 默认有独立的虚拟网络,其中的 127.0.0.1 指的是 WSL 自己,不是 Windows 宿主机,所以代理地址要改成宿主机 IP,并在客户端开启允许局域网连接。嫌麻烦的话,直接开启 TUN 模式是最省事的方案。

三种方案对比

方案适用环境优点缺点
PowerShell 环境变量Windows 原生设置简单只对当前窗口生效
WSL 指向宿主机 IPWSL不改系统网络需开允许局域网连接,IP 可能变化
TUN 模式Windows 与 WSL一次设置全部生效需要管理员权限安装服务

Windows 原生:PowerShell 设置

在 Clash Verge Rev 设置中查看本地混合端口,通常是 7897,以实际显示为准:

$env:HTTPS_PROXY = "http://127.0.0.1:7897"
$env:HTTP_PROXY = "http://127.0.0.1:7897"
$env:NO_PROXY = "localhost,127.0.0.1"
curl.exe -I https://api.openai.com

这些变量只在当前 PowerShell 窗口有效。需要长期生效时,可以写入 PowerShell 配置文件,打开方式是执行 notepad $PROFILE。

WSL:指向宿主机 IP

  1. 在 Clash Verge Rev 中开启允许局域网连接的开关,让代理端口接受来自 WSL 虚拟网卡的连接。
  2. 如果 Windows 防火墙弹出提示,允许 Clash Verge Rev 在专用网络上通信。
  3. 在 WSL 中获取宿主机 IP 并设置代理变量。
HOST_IP=$(ip route show | grep -i default | awk '{ print $3 }')
export HTTPS_PROXY="http://${HOST_IP}:7897"
export HTTP_PROXY="http://${HOST_IP}:7897"
export NO_PROXY="localhost,127.0.0.1"
curl -I https://api.openai.com

可以把这几行写入 WSL 的 shell 配置文件,每次打开终端自动生效。

较新版本的 WSL 支持镜像网络模式,启用后 WSL 与宿主机共享网络,此时通常可以直接使用 127.0.0.1。是否可用取决于 Windows 与 WSL 的版本,以微软官方文档为准。

最省事的方案:TUN 模式

TUN 模式在系统层接管流量,Windows 原生程序与 WSL 的流量都会被 Clash Verge Rev 处理,不需要逐个设置环境变量,也避免了 Codex 子进程漏走代理的问题。开启方法见 Clash Verge TUN 模式,客户端基础配置见 Clash Verge Rev 使用教程。

TUN 开启后如果 WSL 能 ping 通 IP 却无法解析域名,通常是 DNS 配置问题,检查 WSL 的 DNS 是否被正确接管。

如何确认代理真的生效

不管用哪种方案,都建议在运行 Codex 的那个终端里做一次验证,而不是在另一个窗口里测:

  1. 执行 curl 访问 api.openai.com,能返回响应头说明代理可达。
  2. 查看 Clash Verge Rev 的连接列表,确认出现来自 WSL 或 PowerShell 的 OpenAI 连接。
  3. 确认这些连接使用的是美国、日本或新加坡节点,而不是香港节点组。

三项都满足,再启动 Codex。只满足第一项而连接落在香港节点,通常是规则把 OpenAI 域名分到了默认节点组。

登录时的注意事项

在 WSL 中登录 Codex 时,授权页面会在 Windows 浏览器中打开。浏览器与 WSL 终端要走同一个节点,TUN 模式或全局模式能保证这一点。设置完成后仍然报错,按 Codex 无法连接怎么办 继续排查。

总结

  • Windows 原生用 PowerShell 设置 HTTPS_PROXY 即可。
  • WSL 中 127.0.0.1 默认不是宿主机,需要指向宿主机 IP 并开启允许局域网连接。
  • 镜像网络模式下通常可直接用 127.0.0.1,以官方文档为准。
  • TUN 模式一次设置覆盖 Windows 与 WSL,是最省事的方案。

常见问题

WSL 里设置了 127.0.0.1 为什么连不上?

默认网络模式下,WSL 有自己的虚拟网卡,127.0.0.1 指向的是 WSL 自身而不是 Windows 宿主机,所以访问不到宿主机上的代理端口。需要改成宿主机 IP,或使用镜像网络模式。

开启允许局域网连接安全吗?

开启后同一局域网的设备也能连接你的代理端口。在家庭网络中通常问题不大;在公共网络中建议只在需要时开启,或者改用 TUN 模式。

宿主机 IP 每次重启都会变吗?

默认网络模式下,WSL 看到的宿主机地址可能在重启后变化,所以建议用命令动态获取,而不是写死一个 IP。

用了 TUN 模式还需要设置环境变量吗?

多数情况下不需要。TUN 模式在系统层接管流量,WSL 的流量也会经过宿主机网络被接管。如果 TUN 开启后 WSL 仍然不通,再检查 WSL 的 DNS 设置。

搜索文章、品牌、AI 工具、客户端与问题

提示:直接输入 Claude、Codex、IEPL、订阅失败 等关键词。也可以打开 搜索页。