这是一个已知的配置残留问题。即使你停止了 CCX 服务、卸载了 CCSwitch,Codex 的配置文件 (config.toml) 中仍保留了自定义代理配置,导致它继续尝试连接本地 localhost。
🔍 问题根源
Codex 的配置文件位于 ~/.codex/config.toml(或 ~/.config/codex/config.toml),其中包含以下关键配置:
toml
model_provider=custom # ← 这表示使用自定义 Provider[model_providers.custom]base_url=http://localhost:3000 # ← 这指向 CCX 的本地代理即使你已卸载 CCX/CCSwitch,这些配置不会自动清除,所以 Codex 仍会尝试连接 localhost:3000,导致 502 Bad Gateway 或 failed to resolve feature override precedence 错误 。
✅ 解决方案
步骤 1:找到并编辑 Codex 配置文件
在终端中执行以下命令:
bash
# 找到配置文件位置ls ~/.codex/config.toml# 或ls ~/.config/codex/config.toml然后用编辑器打开(如 nano 或 vim):
bash
nano ~/.codex/config.toml步骤 2:完全移除 CustomProvider 配置
你需要彻底删除以下部分:
toml
# ❌ 删除这些行model_provider=custom[model_providers.custom]name=customwire_api=responsesrequires_openai_auth=truebase_url=保留或添加官方配置(如果存在):
toml
# ✅ 确保使用官方 OpenAI 配置model_provider=openai[model_providers.openai]wire_api="responses"requires_openai_auth=true步骤 3:重启 Codex 服务
bash
# 完全重启 VSCode(确保进程彻底结束)# 或者在 VSCode 中执行:Developer: Reload Window# 如果是 CLI 模式,先停止再启动pkill -f codexcodex⚠️ 常见坑点
| 问题 | 原因 | 解决方法 |
|---|---|---|
只删除了 base_url 但保留 model_provider=custom | 配置仍指向不存在的 custom provider | 必须同时删除 model_provider=custom |
使用 wire_api="chat" | 该格式已被弃用 | 改为 wire_api="responses" |
| 端口 1455 被占用 | 残留进程未完全结束 | 结束进程后重启 VSCode |
| 防火墙拦截 | 本地端口被阻止 | 允许 1455 端口通过防火墙 |
🔧 额外检查
如果上述步骤后仍有问题,检查:
-
确认 Codex 版本:
bash
codex --version -
检查是否有残留进程:
bash
ps aux | grep codex# 如果有,执行kill -9 <PID> -
验证 OpenAI 账号登录状态:
bash
codex login