摘要:Windows 侧设 HTTPS_PROXY 即可;WSL 里 127.0.0.1 指向它自己而非宿主机,必须换成宿主机 IP 并在客户端允许局域网连接。不想折腾就开 TUN,一次生效。
一分钟速查
- Windows:PowerShell 设 HTTPS_PROXY 指向本地端口。
- WSL:指向宿主机 IP,开允许局域网连接。
- 最省事:直接开 TUN 模式。
- 验证:在跑 Codex 的终端里用 curl 测。
Windows 原生:PowerShell 设置
在客户端设置里查本地混合端口,通常是 7897,以实际显示为准。在 PowerShell 执行:
$env:HTTPS_PROXY="http://127.0.0.1:7897"
$env:HTTP_PROXY="http://127.0.0.1:7897"
curl.exe -I https://api.openai.com
这些变量只在当前窗口有效。要长期生效,可写入 PowerShell 配置文件。
WSL:指向宿主机 IP
允许局域网连接
在客户端开启「允许局域网连接」,让代理端口接受 WSL 虚拟网卡的连接。
防火墙放行
Windows 防火墙弹提示时,允许客户端在专用网络通信。
获取宿主机 IP
在 WSL 里获取宿主机 IP 并设置代理变量。
镜像网络模式
较新版本的 WSL 支持镜像网络模式,启用后 WSL 与宿主机共享网络,通常可直接用 127.0.0.1。
最省事的方案:TUN 模式
TUN 模式在系统层接管流量,Windows 原生程序与 WSL 的流量都会被客户端处理,不用逐个设环境变量,也避免了 Codex 子进程漏走代理的问题。开启后若 WSL 能 ping 通 IP 却无法解析域名,通常是 DNS 没被正确接管。
如何确认代理真的生效
curl 验证可达
在跑 Codex 的那个终端里执行 curl 访问 api.openai.com,能返回响应头说明可达。
看连接列表
看客户端连接列表,确认出现来自 WSL 或 PowerShell 的 OpenAI 连接。
确认节点地区
确认连接走的是美国、日本或新加坡节点,而不是香港节点组。
关于 WSL 代理的 3 个误区
- 「WSL 里 127.0.0.1 就是宿主机」——WSL 有独立虚拟网络,127.0.0.1 指 WSL 自己,要改宿主机 IP;
- 「设一次环境变量永久有效」——export 只对当前终端会话生效,长期要写配置文件或开 TUN;
- 「能 ping 通就说明代理好了」——ping 通是网络层通,还要确认域名能解析、连接走对节点。
