问题背景
最近在 Windows 上使用 Codex 时,遇到了一个挺典型的问题:输入内容后,界面一直显示'正在思考',但始终没有回答。
一开始很容易把方向想偏,比如怀疑是 Codex 本身的 Bug、API Key 配置有问题,或者软件安装出了差错。实际排查下来,根因并不复杂:网络访问受限。
Codex 需要访问 OpenAI 的接口:
在国内网络环境下,这个地址通常不能直接访问,所以代理就成了绕不开的一步。
排查过程
开启 Windows 系统代理
我先试了 Windows 自带的系统代理:
设置 → 网络和 Internet → 代理
代理虽然开启了,但 Codex 依旧没有反应。这里的坑在于,很多 Electron 或 Node 类应用并不会老老实实读取 Windows 系统代理,系统层面开了,不代表应用层面一定能用。
修改 Codex 配置
接着又尝试在 Codex 配置文件里手动加代理:
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 工具可以正常联网
- 国内软件不受影响
- 需要时一键开启,不用时一键关闭
- 维护成本低,Windows 下也够稳定
我准备了两个批处理脚本:
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

