Codex × 云服务器:远程定位并修复 Bug
一、背景:Codex 的远程模式是什么?
我们平时用 Codex CLI,默认都是在本地项目里跑。你的代码在 Mac 上,Codex 就在 Mac 上帮你改。
但现实中有一种很常见的场景:代码不在你电脑上,在远程服务器里。
比如:
👍
•
项目部署在云服务器的 Docker 容器里
•
你只有 SSH 权限,本地没有源码
•
线上环境出了 Bug,需要直接在远程定位和修复
Codex 的 远程模式(Remote Mode) 就是干这个的——你在本地敲命令,Codex 在远程服务器上读代码、改代码、跑测试,整个过程你的 Mac 上不需要克隆任何仓库。
架构很简单:
代码块
YAML
┌──────────────────┐ SSH 隧道 ┌──────────────────────────┐
│ 你的 Mac 本地 │ ◀───────────────────▶ │ 远程服务器(云主机) │
│ codex --remote │ 端口转发 9001 │ codex app-server │
│ (TUI 界面) │ │ (代码 + 运行环境) │
└──────────────────┘ └──────────────────────────┘
二、实战场景:容器里的 Python 脚本报错了
项目介绍
我在腾讯云服务器上有一个 Docker 容器 codex-demo,里面有一个小项目 docker-health-demo,用来生成容器健康检查报告。
项目结构:
代码块
YAML
/workspace/docker-health-demo/
├── containers.json # 模拟的容器状态数据
├── container_health.py # 健康检查脚本(有 Bug)
└── test_container_health.py # pytest 测试文件
问题复现
直接运行脚本:
代码块
Bash
python3 container_health.py
💥 报错:
代码块
Plain Text
KeyError: 'status'

三、完整操作步骤
第 1 步:在远程服务器上启动 app-server
SSH 登录你的云服务器,进入容器,在项目目录下启动 Codex 的 app-server:
代码块
YAML
ssh root@你的服务器IP
docker exec -it codex-demo bash
cd /workspace/docker-health-demo
codex app-server --listen ws://0.0.0.0:9001
看到类似这样的输出就说明启动成功了:
代码块
YAML
codex app-server (WebSockets)
listening on: ws://0.0.0.0:9001
readyz: http://0.0.0.0:9001/readyz
healthz: http://0.0.0.0:9001/healthz

⚠️ 注意:不要加 --ws-auth 参数。通过 SSH 隧道连接时,安全性由 SSH 本身保证,不需要额外的 WebSocket 认证。
第 2 步:本地建立 SSH 端口转发
在 Mac 上新开一个终端窗口,建立 SSH 隧道把远程的 9001 端口映射到本地:
代码块
Bash
ssh -N -L 9001:127.0.0.1:9001 root@你的服务器IP
输入密码后没有任何输出是正常的——它就是一条安静的隧道,挂着就行。
可以验证一下隧道是否通畅:
代码块
Bash
curl -i http://127.0.0.1:9001/healthz
返回 HTTP/1.1 200 OK 就说明隧道没问题。
第 3 步:本地登录 Codex(仅首次需要)
如果你从来没在本地登录过 Codex CLI,需要先完成一次登录:
代码块
Bash
codex auth login
它会在浏览器打开 OpenAI 的登录页面,登录你的 ChatGPT 账号即可。登录成功后终端会显示 Successfully logged in。
💡 这一步只需要做一次,之后登录凭证会缓存在本地。
第 4 步:连接远程项目
再开一个终端窗口,输入:
代码块
Bash
codex --remote ws://127.0.0.1:9001
如果一切顺利,你会看到 Codex 的 TUI 界面,目录显示的是远程容器里的路径:
代码块
YAML
>_ OpenAI Codex (v0.130.0)
model: gpt-5.5 /model to change
directory: /workspace/docker-health-demo
第 5 步:让 Codex 修复 Bug
在 Codex 的输入框里输入提示词:
代码块
Plain Text
find and fix the bug in container_health.py, then run pytest to verify
Codex 会自动完成以下步骤:
读取 container_health.py 和 containers.json
发现字段名不匹配:代码里用了 "status",数据里是 "state"
修改代码
运行 pytest -q 验证修复结果
修复完成后的输出:
代码块
Bash
python3 container_health.py
代码块
YAML
container_health_report
total=5
running=3
exited=2
五、总结
Codex 远程模式的核心价值:你不需要把代码拉到本地,就能让 AI 直接在远程环境里帮你定位和修复问题。
整个流程拆开来看就三件事:
远程启动 codex app-server
本地 SSH 隧道转发端口
本地 codex --remote 接入
一旦连通,体验和本地使用 Codex 完全一致——读文件、改代码、跑测试,全部在远程执行。
这对于以下场景特别有用:
•
线上服务出 Bug,需要快速定位
•
开发环境在远程 GPU 服务器上
•
多人协作时需要直接在共享服务器上改代码
•
本地机器性能不够,依赖装不全
远程模式目前还是 Alpha 阶段,体验上还有一些粗糙的地方(比如 WebSocket 连接偶尔会降级为 HTTPS),但核心功能已经可用。未来随着 Codex 的迭代,这个能力只会越来越稳。