Codex 401、403 和连接失败:分层排查步骤

这篇教程只解决一个问题:Codex 无法正常调用时,怎样从客户端、认证、配置、网络和服务端逐层找到证据。

直接答案先运行 codex login statuscodex doctor --summary 判断客户端与认证,再检查 config.toml 的 provider、Base URL 和协议。网页能打开只证明站点可达,不能证明模型调用成功。最后根据 401、403、连接错误或响应格式分别处理。

适合谁,不适合谁

适合:配置后无法开始任务你已经安装 Codex,但登录、调用或连接出现错误。
适合:错误信息不够清楚需要用诊断命令和分层检查缩小范围。
不适合:反复更换未知配置盲目替换 Key、模型和 URL 会掩盖真正原因。
不适合:公开密钥求助日志和截图必须遮挡 Key、账号、请求正文和敏感路径。

开始前准备

  1. 记录完整错误类型、发生时间和触发步骤。
  2. 确认当前 Codex 版本、登录状态和配置文件路径。
  3. 从控制台重新确认 Base URL、模型名、Key 和协议说明。
  4. 准备一个无敏感信息的最小测试目录。
不要用 `401` 以外的网页状态判断调用成功业务首页返回 200 或未认证接口返回 401,都不能替代一次真实客户端任务和服务端日志。

完整步骤

01

记录错误并停止随机修改

保存状态码、错误正文和发生步骤;遮挡敏感信息后再分析。

02

检查客户端与认证

运行 codex --versioncodex login statuscodex doctor --summary,先处理安装和登录问题。

03

检查 config.toml

确认 model_provider 指向正确 provider,Base URL 没有空格或重复路径,协议与当前服务说明一致。

04

区分网络可达与 API 可用

可以用浏览器或 Invoke-WebRequest 检查域名是否可达,但必须继续用 Codex 最小任务验证认证和响应格式。

05

根据状态码处理并复测

401 检查凭证和请求头,403 检查权限或策略,连接错误检查 DNS、代理、TLS 和服务状态;每次只改一个因素。

可复制的脱敏诊断命令

这些命令不会打印你的完整 API Key;分享 JSON 诊断前仍应检查其中的路径和环境信息。

Codex 分层诊断
codex --version
codex login status
codex doctor --summary
codex doctor --json

# 只检查业务域名可达性,不代表模型调用成功
Invoke-WebRequest -UseBasicParsing "https://api.xiao-he.top/" -TimeoutSec 10 | Select-Object StatusCode
不推荐

网站能打开,所以 API 一定没问题。

建议做法

网站可达;继续检查登录状态、provider、协议,并用 Codex 最小任务确认真实调用。

怎样判断结果是否可用?

每层检查只能证明对应层级。域名可达、登录成功和模型任务完成是三件不同的事。

常见问题与报错

401 Unauthorized

重新复制 Key,检查前后空格、换行和是否已撤销;确认 login status 以及服务要求的认证方式。

403 Forbidden

Key 可能有效但无权访问当前资源,也可能被账户、组织、区域或服务策略拒绝;查看控制台与服务端说明。

连接超时、拒绝或 DNS 错误

检查 Base URL 拼写、网络、代理、DNS、TLS 证书和服务状态。浏览器访问不能覆盖命令行代理差异。

返回 HTML、空响应或 JSON 结构错误

通常说明请求打到了网页、错误反向代理路径或不兼容接口;核对 Base URL 和协议,不要只重试。

完成后的检查方法

  • 记录了状态码、错误正文、时间和触发步骤。
  • login statusdoctor 已运行并保存脱敏结果。
  • config.toml 中 provider、Base URL 和协议来自当前控制台或文档。
  • 没有把网页可达误判为模型调用成功。
  • 每次只修改一个因素并重复同一个最小任务。
  • Key 和敏感日志没有出现在截图、工单或仓库中。

FAQ

401 和 403 有什么区别?

401 通常表示凭证未被接受;403 通常表示凭证已识别但没有相应权限或被策略拒绝,具体仍以响应正文为准。

网页返回 200 能证明 API 正常吗?

不能。它只证明该网页路由可达,仍需真实客户端请求和结果验证。

doctor 没报错为什么任务仍失败?

doctor 主要检查本地配置和运行环境;上游模型、账户权限和协议兼容仍可能失败。

可以把完整日志发给别人吗?

先删除 Key、账号、路径、请求内容和其他敏感信息,只保留定位问题所需字段。

资料来源与版本说明

用当前控制台字段重新完成一次最小验证。

确认 Key、Base URL、模型名和协议后,只运行一个安全测试任务,并记录诊断结果。 模型、价格、额度与规则以对应业务站当前展示为准。

进入小贺API检查当前配置

下一步