明明登录成功,Claude Code 为什么还报 401 无效令牌?

一篇回溯排查Claude Code认证失败的完整指南

背景

笔者买了Claude Pro会员,想在终端里用Claude Code写代码,结果一运行就报错:

css 复制代码
401 {"error":{"code":"","message":"无效的令牌 (request id: ...)","type":"new_api_error"}}

明明已经登录了,claude auth status 也显示 loggedIn: true.但就是用不了。如果你也遇到了这个问题,这篇文章会帮你快速定位原因。

先了解一下:Claude Code 的认证方式

Claude Code支持两种认证路径:

  • 订阅账号登录Pro/Max/Team/Enterprise):用你的Claude.ai账号通过浏览器OAuth授权,请求走Anthropic官方服务器,用量计入你的订阅额度。
  • API Key 登录 (Console):用Anthropic控制台生成的API Key,按token计费。

首次运行 claude 时会让你选择登录方式,Pro 用户应该选择 "Claude account with subscription"

另外需要注意:Pro 订阅是claude.ai网页端、桌面端、移动端和Claude Code共享同一个用量额度的。用量达到上限后会触发限速,需要等待一段时间才能继续使用。如果你同时重度使用多个端,可以考虑升级到Max计划获取更高额度。

排查流程

第一步:确认基本信息

运行以下命令收集信息:

bash 复制代码
# 查看版本
claude --version

# 查看认证状态
claude auth status

# 检查是否有 API Key 环境变量干扰
echo $ANTHROPIC_API_KEY

认证状态显示authMethod: "oauth_token"loggedIn: true,登录本身就没问题。$ANTHROPIC_API_KEY有值的话先unset ANTHROPIC_API_KEY

第二步:看错误信息的语言

这是最容易忽略的一点。仔细看看我的报错信息:"message":"无效的令牌"

Anthropic官方API的报错是英文。我看到中文,说明请求压根没到Anthropic的服务器,被某个代理站拦下来了。

第三步:查环境变量

运行以下命令一网打尽:

bash 复制代码
echo $ANTHROPIC_BASE_URL
echo $ANTHROPIC_AUTH_TOKEN
env | grep -i anthropic
env | grep -i claude
env | grep -i proxy

如果你也看到类似这样的输出:

ini 复制代码
ANTHROPIC_BASE_URL=https://xxx.某代理站.top
ANTHROPIC_AUTH_TOKEN=sk-xxxxxxxx

这就是问题所在。 ANTHROPIC_BASE_URL环境变量会覆盖 Claude Code 默认的 API 端点,让所有请求发到代理站而不是api.anthropic.com。即使你用官方账号登录了,请求依然走的是代理站------代理站当然不认识你的 OAuth token,于是返回 401。

第四步:修复

临时修复(当前终端会话生效):

bash 复制代码
unset ANTHROPIC_BASE_URL
unset ANTHROPIC_AUTH_TOKEN

然后重新运行 claude,应该就正常了,这也说明你的问题确实和我一样,是被代理站拦截了。

永久修复(找到并删除写入这些变量的地方):

javascript 复制代码
grep -n "ANTHROPIC\|代理站域名" ~/.zshrc ~/.bash_profile ~/.bashrc ~/.zprofile ~/.zshenv 2>/dev/null

找到对应行删掉,再source一下配置文件。如果所有配置文件里都找不到,说明这些变量是之前在终端手动export的,重启终端就消失了,不需要额外处理。

常见的其他认证问题

如果你没有代理站的问题,但Claude Code仍然报错,检查以下几点:

  • 登出再重新登录 :在Claude Code中输入/logout,然后运行claude login,选择订阅账号方式重新登录。
  • 彻底清除缓存后重登
bash 复制代码
 rm -rf ~/.claude
 rm -f ~/.claude.json
 claude
  • 确认浏览器中登录的是正确账号:授权时浏览器里可能已经登录了另一个没有 Pro 的账号。
  • 确认订阅没过期 :去claude.ai/settings检查你的 Pro 状态。
  • Claude Code 版本太旧 :运行 npm update -g @anthropic-ai/claude-code 更新到最新版。
  • 第三方工具限制:Anthropic 从 2026 年 1 月起限制了 Claude Code 凭证只能用于官方客户端。如果你在用 OpenClaw、Kilo Code 等第三方工具,需要改用 API Key 方式。

几个关键点

  • 看到中文错误信息就应该警觉 ------ Anthropic 官方 API 返回英文错误,中文说明请求被发到了代理站。
  • ANTHROPIC_BASE_URL是最常见的坑。用过代理站的人容易把这个变量留在shell配置里,后来换成正式账号登录也没用,请求还是走代理那边。
  • 排查认证问题最顺手的命令:env | grep -i anthropic,一行看清所有相关变量。
  • unset 只管当前会话,要彻底解决需要从Shell配置文件中删除相关行。
相关推荐
Ai拆代码的曹操41 分钟前
opencode CLI 源码拆解:yargs + effectCmd 双层架构如何管理 20+ 子命令
架构·ai编程·opencode·源码拆解
AINative软件工程1 小时前
LLM 应用的熔断降级工程实践:Circuit Breaker 不只是重试的升级版
后端·llm·ai编程
倔强的石头_9 小时前
不想每次都从头解释:我用 Doubao-Seed-Evolving 做了一个「稿件接力站」
ai编程
wangruofeng10 小时前
opencodex 解锁 Codex 任意模型,一个本地代理打通 Claude/Kimi/GLM/DeepSeek
llm·github·openai
大模型码小白12 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
-XWB-13 小时前
【LLM】Agent Planning 完全指南:8 种纯 LLM 范式 + 8 种混合规划模式详解(二)
人工智能·经验分享·aigc·学习方法·ai编程
沉默王二13 小时前
腾讯一面,我霸气反问:“你说你们在做Agent项目,说说 SubAgent、Plan 模式、Skill 调用这些你们都是怎么做的?”面试官一直在擦汗。。
面试·agent·ai编程
kyriewen14 小时前
我让AI改一个bug——它偷偷动了5个我没让它碰的地方
前端·javascript·ai编程
机器之心14 小时前
WAIC现场,这家公司让一群不同的机器人共用一个大脑
人工智能·openai
神奇霸王龙16 小时前
Claude Code屠榜:MiMo与Grok紧追Codex
服务器·网络·人工智能·gpt·ai·ai编程