问题背景
最近在 Windows 上使用 Codex 时,碰到了一个挺典型但也挺折腾的问题:输入内容后,界面一直停在'正在思考',却迟迟没有返回结果。
一开始很容易怀疑是 Codex 本身有问题,或者是 API Key、配置项没配对。实际排查下来,根因并不复杂:网络访问受限,Codex 连接不到 OpenAI 接口。
Codex 需要访问 https://api.openai.com,而在当前网络环境下,直连通常不可用,所以就得把代理这件事处理好。
排查过程
先试系统代理
我先在 Windows 的'设置 → 网络和 Internet → 代理'里打开了系统代理,但结果并不理想,Codex 还是连不上。
这类情况很常见。很多基于 Electron 或 Node 的应用,并不会老老实实读取 Windows 系统代理设置,所以'系统代理已开启'不等于'程序一定会走代理'。
再改 Codex 配置
接着我尝试直接修改 Codex 的配置文件:
C:\Users\用户名\.codex\config.toml
加上:
proxy = "http://127.0.0.1:1099"
但这一步同样没有把问题彻底解决,Codex 还是没有正常联网。
最后试环境变量
真正有效的是通过环境变量设置代理:
HTTP_PROXY=http://127.0.0.1:1099 HTTPS_PROXY=http://127.0.0.1:1099
这样一来,Codex 终于能正常访问网络了。只是新的问题也跟着出来了——国内软件和本地一些工具也会一起走代理,比如微信、QQ、浏览器,甚至一些国内 API 请求都会受到影响。
这显然不是一个适合长期手工维护的方案。
最终方案:用脚本一键切换代理
更稳妥的做法,是把代理配置做成一个可开可关的脚本:需要用 AI 工具时打开,不需要时马上关闭。这样既能保证 Codex、Cursor、VSCode 之类的开发工具正常联网,又不会影响日常使用。
我这里用了两个批处理脚本:
proxy-toggle.bat:一键开启或关闭代理proxy-check.bat:查看当前代理状态
一键开关代理
proxy-toggle.bat 的思路很简单:如果当前没有设置 HTTP_PROXY,就写入代理地址;如果已经设置了,就清空它们。脚本内容如下:
@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
这里有个细节要注意:setx 修改的是用户环境变量,不会立刻影响已经打开的程序。所以脚本执行完之后,最好把 Codex、Cursor、VSCode 这类应用关掉再重新打开一次,新的环境变量才会真正生效。
查看代理状态
如果你不确定当前代理有没有开,可以直接跑 :

