问题背景
最近在 Windows 上使用 Codex 时遇到了一个很奇怪的问题:输入问题后,界面一直显示'正在思考',但是没有任何回答。
最开始以为是 Codex Bug、API Key 问题或软件配置错误,后来才发现其实是网络问题。
问题原因
Codex 需要访问 OpenAI API(https://api.openai.com),但在国内网络环境下无法直接访问,所以必须通过代理访问。
排查过程
一开始尝试了很多方法:
方法 1:开启 Windows 系统代理
设置 → 网络和 Internet → 代理,开启系统代理。结果 Codex 仍然无法联网。原因是很多 Electron / Node 应用不会读取 Windows 系统代理。
方法 2:修改 Codex 配置
在 C:\Users\用户名\.codex\config.toml 中加入:
proxy = "http://127.0.0.1:1099"
结果仍然不生效。
方法 3:设置环境变量
尝试使用 HTTP_PROXY 和 HTTPS_PROXY 环境变量。例如:
HTTP_PROXY=http://127.0.0.1:1099
HTTPS_PROXY=http://127.0.0.1:1099
确实可以让 Codex 联网,但出现一个新问题:国内软件也走代理,例如微信、QQ、浏览器、国内 API 都会受到影响。
最终解决方案
最终使用了一个开发者常用的方法:通过环境变量 + 一键脚本切换代理。
优点:
- AI 工具可以联网
- 国内软件不受影响
- 一键开启 / 关闭
- 简单稳定
脚本方案
编写了两个脚本:proxy-toggle.bat 和 proxy-check.bat。
脚本 1:一键开关代理
文件名:proxy-toggle.bat
@echo off
chcp 65001 >nul
if "%HTTP_PROXY%"=="" (
setx HTTP_PROXY http://127.0.0.1:1099 >nul
setx HTTPS_PROXY http://127.0.0.1:1099 >nul
color 0A
echo.
echo ==============================
echo 代理已开启
echo ==============================
echo.
echo 代理地址:http://127.0.0.1:1099
) else (
setx HTTP_PROXY "" >nul
setx HTTPS_PROXY "" >nul
color 0C
echo.
echo ==============================
echo 代理已关闭
echo ==============================
)
echo.
echo 请关闭并重新打开 Codex / Cursor / VSCode 等软件。
echo.
echo 请按任意键继续...
pause >nul
color 07
功能:如果没开代理则自动开启,如果已开代理则自动关闭。

