如果你遇到的是 claude 命令启动后卡在等待状态、浏览器授权成功但终端没有反应、报 OAuth account information not found in config、或者 WSL2 里粘贴 token 后终端冻结,这篇文章适合你。
先给结论:Claude Code 登录问题大多属于这三类:
- 网络层面:
auth.anthropic.com在国内无法直连,或代理没有接管 Node.js 进程的出站流量 - 回调链路断链:浏览器完成授权,但 token 没有写回 CLI 的配置文件
- 订阅 / 账号层面:Claude.ai Pro/Max 订阅未被正确识别,或 API Key 和 OAuth 混用导致状态混乱
前置条件:
auth.anthropic.com、api.anthropic.com、claude.ai均在国内无法直连,可用代理是使用 Claude Code 的前提。Claude Code 是 Node.js 进程,不会自动继承浏览器代理,必须单独设置代理环境变量或开启 TUN 模式。
不适合这篇文章的情况:
- 你已能登录,只是遇到模型速率限制、上下文超限等使用中的报错
- 你用的是 Claude API(直接调用 API endpoint),不是 Claude Code CLI
- 你遇到的是 Claude Desktop 应用的问题,而不是命令行工具
先按症状分流
| 现象 | 更可能的原因 | 先看哪里 |
|---|---|---|
claude 命令启动后无法连接,或 OAuth 流程报网络错误 | auth.anthropic.com 在国内无法直连,或代理未接管 Node.js | 网络层排查 |
| 浏览器打开授权页,完成后终端无反应,最终超时 | OAuth 回调没有回传给 CLI | 回调排查 |
报 OAuth account information not found in config | token 保存失败,配置文件没有写入 | 配置文件排查 |
| WSL2 里粘贴授权码后终端冻结、stdin 不响应 | WSL2 stdin 不接受 OAuth code 输入 | WSL2 特殊处理 |
| 有 Pro/Max 订阅但仍然提示需要 API Key | 订阅类型识别错误,OAuth client ID 不匹配 | 订阅识别排查 |
一、先排查网络层
1. 确认代理接管了 auth.anthropic.com 的流量
auth.anthropic.com 在国内无法直连,换 DNS 无法解决问题(8.8.8.8、1.1.1.1 等境外公共 DNS 同样不可用)。唯一解决方案是通过代理访问。
可以先测试代理是否真的覆盖了 Node.js 进程:
# 设置代理环境变量后,测试能否访问 Anthropic API
export HTTPS_PROXY=http://127.0.0.1:7890
curl -I https://api.anthropic.com/v1/messages
# 返回 401 Unauthorized = 网络通,问题在认证层
# 连接超时 = 代理没有接管这个请求
如果你的代理客户端支持 TUN 模式(Clash、sing-box 等),开启 TUN 后系统全流量走代理,是最省事的方案,不需要手动设置环境变量。
2. 确认代理接管了 Node.js 进程
Claude Code 是一个 Node.js CLI 工具,不会自动继承浏览器的代理设置。如果你依赖代理访问 anthropic.com,需要明确设置 Node.js 的代理环境变量:
# 设置 HTTP/HTTPS 代理(替换为你的代理地址)
export HTTPS_PROXY=http://127.0.0.1:7890
export HTTP_PROXY=http://127.0.0.1:7890
# 再启动 claude
claude
如果你用的是支持 TUN 模式的代理客户端(Clash、sing-box 等),开启 TUN 模式后系统全流量都走代理,不需要手动设置环境变量。
3. 测试 Anthropic API 是否可达
curl -I https://api.anthropic.com/v1/messages
如果返回 401 Unauthorized,说明网络是通的,问题在认证层面。如果超时或 connection refused,说明网络本身不通。
登录流程简要:claude 命令启动后,会自动打开系统浏览器进行 OAuth 授权;若浏览器未自动打开,在终端按 c 可复制授权 URL,手动粘贴到浏览器完成授权后,终端会自动收到回调。

二、OAuth 回调断链的排查
1. 使用手动粘贴模式
如果浏览器完成授权后终端一直无反应,可以使用手动模式:
启动 claude 后,在终端里按 c(lowercase c),CLI 会打印出授权 URL。手动复制到浏览器,完成授权后,浏览器会返回一个 code,复制 code 粘贴回终端。
# 启动 claude,如果浏览器没有自动打开
# 按 c 复制 URL,手动在浏览器里打开
# 完成授权后复制 code,粘贴回终端
2. 确认端口没有被占用
Claude Code 的 OAuth 回调使用本地端口(通常是随机高端口)。如果该端口被占用,回调会失败。
# 查看占用情况(如果知道端口号)
lsof -i :PORT_NUMBER
# 直接重启 claude 重试(会选用新端口)
3. 确认默认浏览器能正常处理回调
和其他 AI 工具一样,建议临时把默认浏览器切为 Chrome 或 Firefox,再试一次。Arc、Brave 等浏览器有时会拦截 OAuth 回调的 URL scheme。
三、OAuth account information not found 的处理
这个错误(GitHub Issue #1484)的根本原因是:浏览器端授权成功了,但 token 没有被正确写入 Claude Code 的配置文件。
1. 检查配置文件是否存在
# 检查 Claude Code 配置目录
ls ~/.claude/
# 检查认证文件(文件名可能因版本不同而异)
cat ~/.claude/.credentials.json
如果配置目录不存在或认证文件是空的,说明写入失败。
2. 手动清理再重试
# 备份
cp -r ~/.claude ~/.claude.bak
# 清理认证状态
rm -f ~/.claude/.credentials.json
# 重新登录
claude auth login
3. 检查目录写权限
# 确认 ~/.claude 目录有写权限
ls -la ~/.claude/
# 如果权限有问题
chmod 700 ~/.claude
四、WSL2 下的特殊处理

WSL2 里存在两个已知问题(GitHub Issue #20756、#44136):
- OAuth 回调的 localhost 端口在 WSL2 和 Windows 之间不互通
- 某些情况下,终端粘贴 OAuth code 后 stdin 冻结,无法继续
1. 用 API Key 替代 OAuth 登录
WSL2 下最稳定的方式是跳过 OAuth,直接用 API Key:
- 确认代理可用后,打开 console.anthropic.com(需代理访问),创建 API Key
- 在 WSL2 终端里设置环境变量:
export ANTHROPIC_API_KEY=sk-ant-xxxx
# 持久化到 shell 配置文件
echo 'export ANTHROPIC_API_KEY=sk-ant-xxxx' >> ~/.bashrc
source ~/.bashrc
# 直接启动 claude(会自动使用 API Key)
claude
注意:API Key 直接计费,没有 Claude.ai 订阅的免费额度,使用前确认你的 Console 账号已充值。
2. 如果坚持用 OAuth
按照 GitHub Issue #44136 的 workaround,在启动 claude 之前,先在单独的终端窗口里完成这一步:
# 在 Windows 宿主机的 PowerShell(不是 WSL2)里执行登录
# 把生成的 credentials 文件复制到 WSL2 的 ~/.claude/ 目录
具体步骤较复杂,建议优先考虑 API Key 方案。
3. 确认 WSL2 时钟同步
WSL2 的时钟漂移是 token 验证失败的常见原因:
sudo hwclock -s
五、订阅识别异常的排查
1. Claude.ai Max/Pro 订阅没有被识别
已知问题(GitHub Issue #39445):在 Windows 上,如果账号同时有 Claude.ai 订阅和 Console 组织,Claude Code 可能错误地用 Console 的 OAuth client 登录,导致订阅无法被识别,强制使用 API Key 模式。
确认方式:登录后执行 /status,查看当前认证类型是 “Claude.ai account” 还是 “API Key”。
如果识别错误:退出登录,重新执行 claude auth login,注意在浏览器授权页面时选择正确的账号(个人 Claude.ai 账号,而不是 Console 组织账号)。
2. 区分 OAuth 和 API Key 两种模式
| 方式 | 适用场景 | 额度 |
|---|---|---|
| Claude.ai OAuth | 有 Claude.ai Pro 或 Max 订阅 | 使用订阅包含的额度 |
| API Key | 使用 Anthropic Console,直接计费 | 按 token 计费,无免费额度 |
两种方式可以切换,但不要同时设置 ANTHROPIC_API_KEY 环境变量又走 OAuth 登录,这会导致状态混乱。
六、排查顺序别反
- 先确认代理可用,
auth.anthropic.com只能通过代理访问(换 DNS 无效) - 确认代理接管了 Node.js 进程:设置
HTTPS_PROXY环境变量,或开启 TUN 模式 - 浏览器回调失败时,试手动粘贴模式(按
c复制 URL) - 报
OAuth account information not found时,清理~/.claude/.credentials.json重试 - WSL2 下优先考虑 API Key 方案,跳过 OAuth
- 最后排查订阅类型识别问题
如果你同时遇到其他 AI 工具的登录问题,可以参考主流 AI 开发工具登录问题排障索引,里面收录了 Cursor、Copilot、Windsurf、ChatGPT 等工具的通用定位思路。
参考来源
- Claude Code 官方故障排查文档:https://code.claude.com/docs/en/troubleshooting
- Anthropic Support — Troubleshoot installation and authentication:https://support.claude.com/en/articles/14552646-troubleshoot-claude-code-installation-and-authentication
- GitHub Issue #33238 — auth.anthropic.com DNS 解析失败:https://github.com/anthropics/claude-code/issues/33238
- GitHub Issue #1484 — OAuth account information not found:https://github.com/anthropics/claude-code/issues/1484
- GitHub Issue #20756 — WSL2 OAuth 认证失败:https://github.com/anthropics/claude-code/issues/20756
- GitHub Issue #44136 — WSL2 stdin 不接受 OAuth code:https://github.com/anthropics/claude-code/issues/44136
- GitHub Issue #39445 — Windows 订阅识别错误:https://github.com/anthropics/claude-code/issues/39445