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 22 | SSH 登录端口,不是服务器 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, 通过可视化窗口连接同一台服务器使用。