问题背景

在一台服务器配置了代理和 Codex,ssh 直接连接后 Codex 使用正常,但是通过 VScode Remote 连接后发现 Codex Cli 和 Codex Extension 全都无法使用。排查后发现是由于 VScode Remote 启动时并不读取 ~/.bashrc 因此导致通过这种方式连接默认代理无效,需要单独配置。

问题原因

很多人误以为(包括我之前):

VS Code Remote = 打开一个 SSH shell

实际上并不是。

真实结构:

Windows VS Code
↓
VS Code Remote Server
↓
Node/Electron 子进程
↓
Codex Extension
↓
Codex CLI

给 VScode Remote Server 注入环境变量

为了解决这个问题,需要单独给 VScode Remote Server 配置代理相关环境变量,以 V2ray 的 10809 端口为例,需要先创建

~/.vscode-server/server-env-setup/proxy.sh

内容为:

export  http_proxy=http://127.0.0.1:10809
export  https_proxy=http://127.0.0.1:10809
export  HTTP_PROXY=http://127.0.0.1:10809
export  HTTPS_PROXY=http://127.0.0.1:10809
export  ALL_PROXY=socks5://127.0.0.1:10809
export  NO_PROXY=localhost,127.0.0.1,::1

测试:

curl  -I  https://api.openai.com

如果成功则说明 VScode Remote 网络正常