首页 › LLM大语言模型 › Codex专栏 › Codex 实战案例 › Codex × 云服务器:远程定位并修复 Bug

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 的迭代,这个能力只会越来越稳。​