AutoDL 中使用 Codex CLI 的完整流程
本 Skill 用于帮助用户在 AutoDL 远程服务器中直接使用 Codex CLI 修改和调试项目代码,避免将远程项目和大数据下载到本地。适用于以下场景:
- 用户的代码和数据都在 AutoDL 远程服务器上;
- 数据文件较大,不适合下载到本地;
- 用户希望 Codex 直接读取远程代码、修改文件、运行测试;
- AutoDL 服务器无法直接访问
chatgpt.com或api.openai.com; - 安装 Codex CLI 时遇到网络、npm、PATH、gawk、SHA 校验等问题。
1. 总体思路
不要把 AutoDL 上的项目下载到本地再让 Codex 修改,而是:
- 在本地电脑开 SSH 反向代理;
- 让 AutoDL 通过本地代理访问 OpenAI;
- 在 AutoDL 服务器中安装 Codex CLI;
- 在 AutoDL 项目目录中直接运行
codex; - 让 Codex 在远程服务器上直接读取、修改、运行代码。
最终目标是:
cd /autodl-tmp/你的项目目录
codex
2. 获取 AutoDL 的 SSH 地址和端口
在 AutoDL 控制台中找到当前实例的 SSH 登录命令。
通常格式类似:
ssh -p 32384 [email protected]
其中:
[email protected]
是 AutoDL 地址;
-p 32384
是 SSH 端口。
后续所有命令中的 <PORT> 替换为端口,例如 32384;<HOST> 替换为地址,例如 connect.bjb2.seetacloud.com。
3. 在本地电脑开启 SSH 反向代理
如果本地电脑已经开启 Clash、VPN 或其他代理,并且本地代理端口是 7890,则在本地 Windows PowerShell、CMD 或 Git Bash 中运行:
ssh -N -R 7890:127.0.0.1:7890 -p <PORT> root@<HOST>
示例:
ssh -N -R 7890:127.0.0.1:7890 -p 32384 [email protected]
输入 AutoDL 的 SSH 密码。
注意:
- 输入密码时,终端不会显示任何字符,也不会显示
*; - 粘贴密码后直接按 Enter;
- 如果登录成功,该窗口会卡住不动,这是正常的;
- 不要关闭这个窗口,它负责维持 AutoDL 到本地代理的隧道。
如果提示:
Permission denied
说明密码错误,需要回 AutoDL 控制台复制正确的 SSH 密码。
4. 在 AutoDL 中设置代理环境变量
打开另一个终端,正常 SSH 登录 AutoDL,或者使用 AutoDL 网页终端。
进入 AutoDL 后执行:
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890
然后测试网络:
curl -I https://chatgpt.com
curl -I https://api.openai.com
如果之前是:
Connection timed out
现在变成:
HTTP/1.1 200 Connection established
说明代理隧道已经生效。
如果访问 chatgpt.com 返回:
HTTP/2 403
这通常说明已经连到了网站,只是网页本身被 Cloudflare 或访问策略拒绝,不一定代表代理失败。应继续测试 Codex 安装脚本或 api.openai.com。
5. 安装 Codex CLI
在 AutoDL 中执行:
curl -fsSL https://chatgpt.com/codex/install.sh | sh
如果成功,会看到类似:
Installing Codex CLI
Detected platform: Linux (x64)
Resolved version: ...
Installing standalone package ...
Codex CLI installed successfully.
6. 处理 gawk / SHA-256 校验报错
如果安装过程中出现:
Could not find SHA-256 digest for codex-package-x86_64-unknown-linux-musl.tar.gz in codex-package_SHA256SUMS.
通常是系统默认 awk 不是 GNU awk,安装脚本解析 SHA256SUMS 失败。
先检查:
awk --version
如果输出:
awk: not an option: --version
说明当前 awk 不是 GNU awk。
不要使用:
bash awk --version
这是错误写法。awk 是二进制程序,不是 shell 脚本。
修复方式:
apt-get update
apt-get install -y gawk
安装后检查:
gawk --version
awk --version
如果 awk --version 仍然不是 GNU Awk,则切换默认 awk:
update-alternatives --install /usr/bin/awk awk /usr/bin/gawk 20
update-alternatives --set awk /usr/bin/gawk
再次检查:
awk --version
正常后重新安装 Codex:
curl -fsSL https://chatgpt.com/codex/install.sh | sh
7. 处理 npm command not found
如果执行:
npm install -g @openai/codex
出现:
bash: npm: command not found
说明当前 AutoDL 环境没有 Node.js/npm。
可以使用 conda 安装:
conda install -c conda-forge nodejs -y
检查:
node -v
npm -v
然后给 npm 设置代理:
npm config set proxy http://127.0.0.1:7890
npm config set https-proxy http://127.0.0.1:7890
再安装 Codex:
npm install -g @openai/codex
如果官方安装脚本已经成功,则不需要 npm 方案。
8. 处理 codex command not found
安装成功后,如果运行:
codex --version
却出现:
bash: codex: command not found
通常是当前终端 PATH 没刷新。
先执行:
export PATH=/root/.local/bin:$PATH
然后检查:
which codex
codex --version
也可以直接用完整路径:
/root/.local/bin/codex --version
为了以后每次打开终端都能使用 codex,写入 .bashrc:
echo 'export PATH=/root/.local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
再次检查:
codex --version
正常情况下会显示类似:
codex-cli 0.141.0
9. 登录 Codex
AutoDL 通常是无浏览器环境,应使用设备码登录:
codex login --device-auth
Codex 会在终端里给出登录链接和一次性 code。
在本地电脑浏览器中打开链接,登录 ChatGPT,然后输入终端给出的 code。
登录成功后,AutoDL 中会显示:
Successfully logged in
可以检查登录状态:
codex login status
10. 在 AutoDL 项目目录中启动 Codex
进入项目目录:
cd /autodl-tmp/你的项目目录
示例:
cd /autodl-tmp/Tencent-Advertising-Algorithm-Competition
启动 Codex:
codex
之后即可让 Codex 直接分析和修改远程代码。
推荐第一条 prompt:
请先阅读这个项目的代码结构,不要读取完整数据集。帮我分析训练流程和当前可能的问题。先不要修改文件,先给我修改方案。
如果需要它修改代码,可以说:
请根据刚才的分析修改代码。只修改必要文件,不要读取完整数据集,不要删除数据、权重和日志文件。修改后告诉我改了哪些文件,以及如何测试。
11. 大数据项目的安全使用规则
AutoDL 项目通常包含大数据、模型权重、日志和实验结果。使用 Codex 前建议新建 AGENTS.md:
nano AGENTS.md
写入:
# 项目说明
这是一个运行在 AutoDL 服务器上的机器学习项目。
## 重要规则
- 不要读取完整数据集。
- 不要打开 data、dataset、checkpoints、outputs、logs 等大文件目录,除非用户明确要求。
- 如果需要检查数据格式,只读取前 5 行或请求用户提供小样本。
- 修改代码前,先说明准备修改哪些文件。
- 不要删除任何数据文件、模型权重、日志或实验结果。
- 不要直接运行完整训练,除非用户明确要求。
- 优先运行轻量级测试、语法检查或小样本测试。
然后再运行:
codex
12. 推荐的完整命令顺序
本地电脑:开启反向代理
ssh -N -R 7890:127.0.0.1:7890 -p <PORT> root@<HOST>
保持该窗口不关闭。
AutoDL 服务器:设置代理
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890
AutoDL 服务器:测试网络
curl -I https://chatgpt.com
curl -I https://api.openai.com
AutoDL 服务器:修复 awk
apt-get update
apt-get install -y gawk
AutoDL 服务器:安装 Codex
curl -fsSL https://chatgpt.com/codex/install.sh | sh
AutoDL 服务器:刷新 PATH
export PATH=/root/.local/bin:$PATH
echo 'export PATH=/root/.local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
AutoDL 服务器:检查版本
codex --version
AutoDL 服务器:登录
codex login --device-auth
AutoDL 服务器:进入项目并启动
cd /autodl-tmp/你的项目目录
codex
13. 常见问题速查
问题 1:curl: (28) Failed to connect to chatgpt.com
原因:AutoDL 无法直接访问 ChatGPT。
解决:本地电脑开启 SSH 反向代理,并在 AutoDL 设置代理环境变量。
问题 2:输入 SSH 密码时粘贴不上
原因:SSH 密码输入不会显示任何字符。
解决:粘贴后直接按 Enter。如果出现 Permission denied 才说明密码错误。
问题 3:HTTP/1.1 200 Connection established 后出现 HTTP/2 403
原因:代理隧道已通,目标网站拒绝了当前请求。
解决:继续测试安装脚本或 api.openai.com,不一定是代理失败。
问题 4:npm: command not found
原因:AutoDL 中没有安装 Node.js/npm。
解决:
conda install -c conda-forge nodejs -y
问题 5:Could not find SHA-256 digest
原因:系统默认 awk 不是 GNU awk,安装脚本解析 SHA 校验文件失败。
解决:
apt-get install -y gawk
必要时:
update-alternatives --install /usr/bin/awk awk /usr/bin/gawk 20
update-alternatives --set awk /usr/bin/gawk
问题 6:bash: codex: command not found
原因:Codex 安装成功,但当前 shell 的 PATH 没有刷新。
解决:
export PATH=/root/.local/bin:$PATH
source ~/.bashrc
或者:
/root/.local/bin/codex --version
问题 7:Codex 登录时打不开浏览器
原因:AutoDL 是远程无浏览器环境。
解决:
codex login --device-auth
在本地浏览器中完成设备码登录。
14. 使用原则
在 AutoDL 中使用 Codex 时,应遵守以下原则:
- 先开代理,再用 Codex;
- 不要关闭本地 SSH 反向代理窗口;
- 不要在大数据根目录启动 Codex;
- 优先在项目代码目录启动 Codex;
- 使用
AGENTS.md限制 Codex 不要读取大数据; - 修改代码前让 Codex 先给方案;
- 修改后用
git diff检查; - 不要让 Codex 直接删除数据、权重或实验结果;
- 完整训练前,先让 Codex 做小样本测试;
- 每次重新打开 AutoDL 终端时,确认代理变量和 PATH 是否仍然存在。