AutoDL 远程服务器使用 Codex 完整教程

前言

做深度学习、大模型实验基本都依赖 AutoDL 等云 GPU 服务器,但直接在远端 VSCode 使用 Codex 插件时,极易出现 接口超时、鉴权失败、代码补全无响应 问题。

核心根源:Codex 网络请求由远端服务器发起,服务器无公网代理,无法直连服务。本文提供一套完整可落地的代理转发配置流程,一次配置永久生效,适配 AutoDL 所有实例。

前置准备

  1. 本地电脑:已开启 HTTP 代理(端口 7897)
  2. VSCode 安装插件:Remote - SSH、Codex 插件
  3. AutoDL 服务器 SSH 登录信息:公网 IP、SSH 端口、用户名

一、本地 SSH 配置:建立代理端口隧道转发

1. 打开本地 SSH 配置文件

Windows 路径:C:\Users\你的用户名\.ssh\config

Mac/Linux 路径:~/.ssh/config

2. 写入服务器完整配置(替换你的服务器信息)

Host host
HostName ip  # AutoDL服务器公网IP
User user          # 你的服务器用户名
Port port                # AutoDL分配的SSH端口
# 核心:远端7897端口转发到本地代理7897
RemoteForward 127.0.0.1:7897 127.0.0.1:7897
ExitOnForwardFailure yes
ServerAliveInterval 30
ServerAliveCountMax 3
TCPKeepAlive yes

参数说明

  • RemoteForward:SSH 隧道核心,把远程服务器 127.0.0.1:7897 流量转发到本机代理端口,实现远端走本地网络
  • 保活参数:防止长时间闲置 SSH 连接断开

二、远程 VSCode 全局代理配置

连接服务器后,打开远程 VSCode 的 settings.json(远程窗口设置),粘贴以下配置,让插件、终端全部走转发代理:

{
    "http.proxy": "http://127.0.0.1:7897",
    "http.proxySupport": "on",
    "http.proxyStrictSSL": false,
    "terminal.integrated.env.linux": {
        "http_proxy": "http://127.0.0.1:7897",
        "https_proxy": "http://127.0.0.1:7897"
    }
}
  • http.proxyStrictSSL: false:规避代理 SSL 证书校验报错
  • terminal.integrated.env.linux:同步给内置终端注入代理变量

三、服务器永久全局代理环境变量(必配)

VSCode 插件、Codex 程序、curl/wget 等命令行工具都会读取系统 proxy 环境变量,写入 ~/.bashrc 实现永久生效,每台新服务器仅需执行一次。

1. 备份配置文件(防止改错)

# 查看文件是否存在
ls -la ~/.bashrc
# 备份,带时间戳
cp ~/.bashrc ~/.bashrc.backup_$(date +%Y%m%d_%H%M%S)
# 检查是否已配置 Codex 代理
grep -n "Codex proxy" ~/.bashrc

无输出代表未配置,执行下面写入脚本:

cat <<'EOF' >> ~/.bashrc
# ==== = Codex proxy begin ==== =
export http_proxy="http://127.0.0.1:7897"
export https_proxy="http://127.0.0.1:7897"
export HTTP_PROXY="http://127.0.0.1:7897"
export HTTPS_PROXY="http://127.0.0.1:7897"
export ALL_PROXY="http://127.0.0.1:7897"
export all_proxy="$ALL_PROXY"
# 本地/内网地址不走代理,避免死循环
export NO_PROXY="localhost,127.0.0.1,::1"
export no_proxy="$NO_PROXY"
# ==== = Codex proxy end ==== =
EOF

2. 立即生效并校验

# 重载环境变量
source ~/.bashrc
# 查看所有代理变量是否写入成功
env | grep -i proxy

四、重启 VSCode 远程服务,加载全部配置

配置完成后必须重启远程服务,否则代理不生效:

  1. 快捷键 Ctrl + Shift + P
  2. 输入命令:Remote-SSH: Kill VS Code Server on Host...
  3. 选择当前 AutoDL 服务器,断开连接
  4. 重新 SSH 连接服务器

五、上传 Codex 认证配置文件

在本地准备 .codex 文件夹,上传至服务器用户根目录,文件夹包含核心配置:

config.toml 内容

[proxy]
http_proxy="http://127.0.0.1:7897"
https_proxy="http://127.0.0.1:7897"

该文件为 Codex 程序独立代理配置,和系统环境变量双重兜底,彻底解决网络连通问题。

六、连通性测试(排查报错专用)

重连服务器后,终端执行测试命令,验证代理是否通网:

# 测试外网连通
curl -I https://api.openai.com
# 查看当前出口 IP
curl https://icanhazip.com

返回正常 HTTP 状态码,代表代理转发成功,Codex 可正常使用。

常见问题排查

  1. Codex 一直转圈无补全
    • 检查 SSH config 的 RemoteForward 端口是否和本地代理端口一致
    • 重新 Kill VSCode 远程服务重连
  2. 终端 curl 可以联网,Codex 插件不行
    • 确认远程 settings.json 代理配置正确,关闭 SSL 严格校验
  3. 新开终端代理失效
    • 重新执行 source ~/.bashrc,确认写入 ~/.bashrc 无语法错误
  4. 服务器重启后代理失效
    • 配置已写入 bashrc,重启终端自动加载,无需重复执行脚本

总结

整套流程分为四层代理兜底:

  1. SSH 隧道端口转发(本地 → 远端流量通道)
  2. VSCode 远程设置(插件层代理)
  3. Linux 系统 bashrc 全局环境变量(终端 / 程序通用)
  4. Codex 独立 config.toml(程序专属代理)

一次配置后,后续开机、重连服务器无需重复操作,完美解决 AutoDL 远程环境下 Codex 网络访问限制,大幅提升远程代码开发效率。

posted @ 2026-07-20 20:16  solarlemon  阅读(653)  评论(0)    收藏  举报