Codex 401 Unauthorized 报错解决教程:登录失效、API Key、代理和中转配置排查
最近不少朋友在使用 Codex CLI、Codex 插件或者通过第三方 API 中转接入 Codex 时,会遇到一个非常常见的报错:
401 Unauthorized
或者类似:
exceeded retry limit, last status: 401 Unauthorized
这个错误看起来很吓人,但本质上并不复杂。401 Unauthorized 的意思是:当前请求没有通过身份认证。 换句话说,Codex 已经向服务端发起请求了,但服务端认为你的登录状态、Token、API Key 或权限不正确,所以拒绝了请求。
下面我们就把 Codex 401 报错的常见原因和解决方法整理一下。
一、登录状态失效
这是最常见的原因之一。
Codex CLI 通常会在本地保存登录凭证,例如账号登录后的 token、refresh token 或认证缓存。如果这些凭证过期、被刷新、被覆盖,或者本地缓存损坏,就可能出现 401 Unauthorized。
解决方法
可以先尝试退出并重新登录:
codex logout
codex login
如果普通重新登录无效,可以清理本地认证缓存后再登录。
常见位置可能是:
~/.codex/auth.json
可以尝试删除认证文件:
rm -rf ~/.codex/auth.json
然后重新执行:
codex login
如果你之前切换过多个账号,或者用过第三方工具改过 Codex 配置,这一步尤其重要。
二、API Key 错误或失效
如果你使用的是 API Key 登录 Codex,而不是 ChatGPT 账号登录,那么 401 很可能和 API Key 有关。
常见情况包括:
- API Key 填错了;
- API Key 前后多了空格;
- API Key 已被删除或重置;
- API Key 所属账号没有权限;
- 使用了错误平台的 Key;
- 环境变量没有生效。
比如你设置了:
export OPENAI_API_KEY="sk-xxxx"
但实际终端环境没有加载,或者你在另一个 shell、另一个 IDE、另一个终端里运行 Codex,就可能导致 Codex 读取不到正确的 key。
解决方法
先检查环境变量:
echo $OPENAI_API_KEY
如果为空,重新设置:
export OPENAI_API_KEY="你的 OpenAI API Key"
如果你用的是 Windows PowerShell:
$env:OPENAI_API_KEY="你的 OpenAI API Key"
如果你配置了 .env、config.toml 或第三方中转地址,也要确认 Codex 实际读取的是哪一份配置。
三、账号套餐或权限不匹配
有些用户是通过 ChatGPT 账号登录 Codex,有些用户是通过 API Key 使用 Codex。两种方式的权限体系并不完全一样。
比如:
- ChatGPT 账号能用,不代表 API Key 一定能用;
- API Key 能调用普通模型,不代表能调用所有 Codex 相关接口;
- Plus、Pro、Team、Enterprise 的可用能力也可能不同;
- 某些功能可能需要特定地区、组织或套餐权限。
解决方法
你可以检查几个点:
codex --version
codex login
然后确认:
- 当前登录的是不是正确的 OpenAI / ChatGPT 账号;
- 当前账号是否有 Codex 使用权限;
- 当前 API Key 是否来自正确的 Organization;
- 是否切换过多个 OpenAI 账号;
- 是否使用了企业账号、团队账号或多个 workspace。
如果你同时有多个 OpenAI 账号,建议先完全退出,再用目标账号重新登录。
四、Codex 版本过旧
Codex CLI 本身也在更新。旧版本可能存在认证逻辑不兼容、新接口不支持、token 刷新失败等问题。
解决方法
先查看版本:
codex --version
如果你是 npm 安装的,可以尝试更新:
npm install -g @openai/codex@latest
或者:
npm update -g @openai/codex
更新后重新登录:
codex logout
codex login
五、代理、网络或地区问题
有时候 401 不一定完全是账号问题,也可能和网络环境有关。
例如:
- 请求被代理软件改写;
- 公司网络拦截认证请求;
- VPN 节点异常;
- 代理出口频繁变化;
- 地区访问策略变化;
- 请求被中转服务错误转发。
如果 Codex 登录成功,但一发起请求就 401,就要重点检查网络和代理。
解决方法
可以尝试:
- 切换网络,比如手机热点;
- 关闭代理后重试;
- 更换代理节点;
- 检查终端是否设置了
HTTP_PROXY、HTTPS_PROXY; - 检查公司电脑是否有安全软件、MDM、网关拦截。
查看代理环境变量:
echo $HTTP_PROXY
echo $HTTPS_PROXY
如果需要临时取消:
unset HTTP_PROXY
unset HTTPS_PROXY
Windows PowerShell 可以执行:
Remove-Item Env:HTTP_PROXY
Remove-Item Env:HTTPS_PROXY
六、使用第三方 API 中转时配置错误
很多朋友会通过 API 中转服务、反代网关、cc-switch、new-api、sub2api 等方式接入模型。
这种情况下,401 常见原因更多:
- 中转平台的 token 填错;
- base_url 写错;
- 模型名不支持;
- 中转服务没有转发 Authorization 头;
- 上游 Key 已失效;
- 用户余额不足或渠道被禁用;
- Codex 仍然请求了 OpenAI 官方接口;
- 中转平台没有兼容 Codex 的某些接口。
解决方法
检查配置中的几个关键项:
OPENAI_API_KEY=你的中转平台 token
OPENAI_BASE_URL=https://你的中转地址/v1
重点确认:
OPENAI_API_KEY是中转平台给你的 key,不是乱填的;OPENAI_BASE_URL是否以/v1结尾;- 中转平台是否支持你调用的模型;
- Codex 是否真的走了中转地址;
- 中转平台后台是否有请求日志;
- 上游渠道是否正常。
如果你是站长或中转平台管理员,还要看服务端日志,确认请求有没有到达你的服务。
七、本地配置混乱
很多人折腾过 Claude Code、Codex、cc-switch、OpenAI API、中转平台之后,本地环境变量和配置文件会非常混乱。
比如你以为 Codex 读取的是新 key,实际上它读的是旧环境变量。
常见冲突来源:
~/.bashrc
~/.zshrc
~/.profile
~/.codex/config.toml
.env
IDE 环境变量
系统环境变量
cc-switch 配置
解决方法
建议按顺序排查:
echo $OPENAI_API_KEY
echo $OPENAI_BASE_URL
which codex
codex --version
如果你不确定哪里配置错了,可以先新开一个干净终端,只设置必要变量:
unset OPENAI_API_KEY
unset OPENAI_BASE_URL
export OPENAI_API_KEY="你的 key"
export OPENAI_BASE_URL="你的 base_url"
然后再运行 Codex。
八、refresh token 被复用或刷新失败
有些 401 是刷新登录状态时出现的。
比如报错中可能出现:
Failed to refresh token: 401 Unauthorized
这通常说明本地保存的 refresh token 已经不能继续使用了。
解决方法
这种情况最直接的方式就是清理登录状态后重新登录:
codex logout
rm -rf ~/.codex/auth.json
codex login
如果还有问题,可以把整个 Codex 配置目录备份后重置:
mv ~/.codex ~/.codex_backup
codex login
注意:这样会清掉本地 Codex 的部分配置,建议先备份。
九、请求了不存在或无权限的模型
有时候错误不是认证本身,而是模型权限问题表现成 401 或类似鉴权错误。
比如你配置了一个模型名:
model = "gpt-xxx-codex"
但当前账号没有这个模型权限,或者中转平台没有映射这个模型,就可能请求失败。
解决方法
检查模型名是否正确。
可以先换成平台明确支持的模型测试。如果使用中转平台,要以中转平台后台的模型列表为准。
十、使用非官方 Codex 工具导致认证异常
这个问题也要注意。
使用 Codex 相关工具时,不要随便安装来路不明的 npm 包、桌面客户端或所谓“增强版 Codex”。
如果某些工具修改了本地配置、劫持了 API 地址,或者保存了错误 token,也可能导致 Codex 一直返回 401。
解决方法
建议:
- 只安装官方或可信来源的 Codex;
- 不要随便运行陌生脚本;
- 如果怀疑 token 泄露,立刻退出登录;
- 重置 OpenAI API Key;
- 检查账号异常用量;
- 删除本地可疑包和配置。
可以查看全局 npm 包:
npm list -g --depth=0
如果发现可疑 Codex 相关包,建议谨慎卸载。
推荐排查顺序
遇到 Codex 401 Unauthorized,可以按这个顺序处理。
第一步:确认是不是账号登录问题
codex logout
codex login
第二步:确认 Codex 版本
codex --version
npm install -g @openai/codex@latest
第三步:检查 API Key
echo $OPENAI_API_KEY
第四步:检查 base_url
echo $OPENAI_BASE_URL
第五步:清理本地认证缓存
rm -rf ~/.codex/auth.json
codex login
第六步:换网络或关闭代理测试
unset HTTP_PROXY
unset HTTPS_PROXY
第七步:如果你使用中转平台,去后台看请求日志
重点看:
- 请求有没有进来;
- Authorization 是否正确;
- 模型名是否支持;
- 用户余额是否充足;
- 上游渠道是否正常;
- 返回 401 的是中转平台,还是上游 OpenAI。
总结
Codex 出现 401 Unauthorized,本质上就是身份认证失败。
常见原因主要有:
- 登录状态过期;
- API Key 错误;
- 账号权限不足;
- Codex 版本过旧;
- 网络或代理异常;
- 第三方中转配置错误;
- 本地环境变量冲突;
- refresh token 失效;
- 模型无权限;
- 使用了非官方或可疑工具。
大部分情况下,重新登录、更新 Codex、检查 API Key、清理认证缓存,就能解决问题。
如果你是通过中转平台接入 Codex,那就重点检查 OPENAI_API_KEY、OPENAI_BASE_URL、模型名、余额、渠道状态和服务端日志。
遇到 401 不要慌,先判断一句话:
到底是 Codex 没拿到正确身份,还是服务端不认可这个身份。
只要沿着这个方向排查,基本都能定位到问题。
参考:
https://codex-zh.com/posts/401-unauthorized/
更多推荐

所有评论(0)