name: autodl-codex-setup description: Guide the user through installing, configuring, logging into, and troubleshooting OpenAI Codex CLI on an AutoDL remote server, including SSH reverse proxy, proxy variables, gawk checksum errors, npm fallback, PATH setup, and safe usage inside large-data projects.
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 是否仍然存在。