问题现象
在使用 @caixiaoshun/claudex 配合 Claude Code 时,启动后出现以下错误:
身份验证错误
验证过程中出错。请重试。
error_code: authorize_hydra_invalid_request
或者启动后虽然能进入界面,但显示 Opus 4.7 (1M context) · API Usage Billing,并且请求一直超时重试。
根本原因分析
- 端口冲突:Claudex 需要端口 18457 做 OAuth 登录,但被其他进程占用
- 认证绕过失败:新版 Claude Code 强制向 Anthropic 官方服务器验证
- CCR 配置未生效:配置文件路径或格式不正确,导致路由失败
完整解决方案
第一步:解决端口占用
# 查看端口占用
netstat -ano | findstr :18457
# 杀掉占用进程(替换 PID 为你看到的数字)
taskkill /PID 26680 /F
第二步:启动 Claudex 并登录
# 启动代理(首次会自动打开浏览器登录 ChatGPT)
claudex
看到以下输出表示成功:
[08:XX:XX] INF ChatGPT authorization successful
[08:XX:XX] INF Starting proxy server on http://localhost:4000
第三步:配置 CCR
创建配置文件 ~/.claude-code-router/config.json:
{
"APIKEY": "sk-ant-placeholder",
"PORT": 3456,
"Providers": [
{
"name": "chatgpt",
"api_base_url": "http://localhost:4000/v1/chat/completions",
"api_key": "sk-ant-placeholder",
"models": ["gpt-4o"]
}
],
"Router": {
"default": "chatgpt,gpt-4o"
}
}
第四步:启动
# 终端1:保持 Claudex 运行
claudex
# 终端2:启动 CCR 服务
ccr start
# 终端3:启动 Claude Code
ccr code
验证是否成功
在 Claude Code 中输入 /status,应该看到连接的是本地 endpoint,而非 Anthropic 官方 API。
常见问题 FAQ
Q1: 运行 claudex 提示 command not found
解决方案:重新安装
npm install -g @caixiaoshun/claudex
Q2: 浏览器没有自动打开 OAuth 页面
解决方案:手动访问 http://localhost:18457/login
Q3: CCR 启动后仍显示 Opus 模型
解决方案:检查配置文件路径是否正确
# 验证配置文件存在
Get-Content "$env:USERPROFILE\.claude-code-router\config.json"
Q4: 一直显示 Retrying... API_TIMEOUT
解决方案:说明请求没有正确路由到 Claudex,检查:
- Claudex 是否在运行(
netstat -ano | findstr :4000) - 环境变量是否设置正确
- CCR 配置中的
api_base_url是否正确
Q5: 端口 18457 一直被占用
解决方案:
# 查看并杀掉所有 node 进程
taskkill /F /IM node.exe
终极备选方案
如果以上都不行,直接让 Claude Code 直连 Claudex(跳过 CCR):
# 终端1:claudex
# 终端2:
$env:ANTHROPIC_BASE_URL = "http://localhost:4000"
$env:ANTHROPIC_API_KEY = "sk-ant-placeholder"
claude
环境要求
- Node.js ≥ v18.0
- ChatGPT Plus/Pro 订阅(免费账号不支持)
- Windows/macOS/Linux
总结
| 问题 | 核心原因 | 解决方案 |
|---|---|---|
| 端口占用 | 18457 被占用 | taskkill /PID xxx /F |
| 身份验证错误 | 官方验证未绕过 | 使用 CCR 做中间层 |
| 请求超时 | 未连接到 Claudex | 检查配置文件路径 |
| 显示 Opus | 配置未生效 | 重新创建 config.json |
希望这篇文章能帮助你解决 Claude Code + Claudex 的身份验证问题。如果还有其他问题,欢迎在评论区留言交流!