1. 在服务器准备 Node 与 Codex

如果服务器没有 curl,但可以使用包管理器,先安装 wget。 没有 sudo 时需要用 root 用户执行,或请管理员预先安装。

# Ubuntu
apt install -y wget

# CentOS
yum install -y wget

接着用 wget 安装 nvm,再安装 Node 22 和 Codex CLI。

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

source ~/.bashrc

nvm install 22
nvm use 22

npm install -g @openai/codex

2. 在本地 SSH 配置远程转发

在本地电脑的 ~/.ssh/config 中为服务器增加配置。 关键是最后一行:它会把服务器上的 127.0.0.1:17890 转发到本地电脑的 127.0.0.1:7890

Host my-linux
    HostName 你的服务器IP或域名
    User 你的Linux用户名
    Port 22
    IdentityFile C:\Users\你的用户名\.ssh\id_ed25519
    ServerAliveInterval 60
    ServerAliveCountMax 3
    RemoteForward 17890 127.0.0.1:7890
端口含义
配置项 说明
7890本地代理软件监听端口,按自己的代理客户端修改。
17890服务器上暴露给命令行使用的代理端口。
Port 22SSH 登录端口,不是服务器 IP;若服务器改过 SSH 端口就填实际端口。

3. 登录服务器后导出代理变量

使用上面的 Host 连接服务器后,在同一个终端里写入代理环境变量。 codex login 也要在这个终端执行,否则需要重新导出这些变量。

export http_proxy=http://127.0.0.1:17890
export https_proxy=http://127.0.0.1:17890
export HTTP_PROXY=http://127.0.0.1:17890
export HTTPS_PROXY=http://127.0.0.1:17890
export no_proxy=localhost,127.0.0.1,::1
export NO_PROXY=localhost,127.0.0.1,::1

可以用 wget 检查代理链路是否打通。若返回 HTTP/1.1 200 OK,说明远程终端已经能通过本地代理访问网络。

wget --spider \
  -e use_proxy=yes \
  -e http_proxy=http://127.0.0.1:17890 \
  https://www.google.com

4. 登录 Codex 并持久化代理

代理测试通过后,直接在当前 SSH 终端登录 OpenAI 账号。

codex login

登录完成后,在服务器的 ~/.codex/.env 中写入代理变量, 这样重启 Codex 后仍能正常使用代理。

HTTP_PROXY=http://127.0.0.1:17890
HTTPS_PROXY=http://127.0.0.1:17890

最后重启 Codex 即可。也可以安装 VS Code 的 Codex extension, 通过可视化窗口连接同一台服务器使用。