代理时,出现计费模型没有代理,然后报错405 - Claude Code
Quick fix
将 ANTHROPIC_DEFAULT_SONNET_MODEL 等环境变量的值直接修改为目标模型名称,因为 cc-switch 代理仅读取该字段进行映射。
Symptom
Section titled “Symptom”代理时,出现计费模型没有代理,然后报错405在使用 cc-switch 配置本地代理(如 DeepSeek)时,用户发现在 UI 中设置的实际请求模型未生效,`~/.claude/settings.json` 中依然保留了原始的 Claude 模型名称。这是因为 cc-switch 代理在转发请求时,仅读取 `ANTHROPIC_DEFAULT_*_MODEL` 环境变量进行模型映射,而不会读取 `ANTHROPIC_DEFAULT_*_MODEL_NAME`。如果 `_MODEL` 字段仍为 `claude-sonnet-4-6` 等默认值,代理会向 DeepSeek 端点请求不存在的 Claude 模型,从而导致 405 报错或映射失败。
打开 `~/.claude/settings.json` 文件,将 `ANTHROPIC_DEFAULT_SONNET_MODEL` 等 `_MODEL` 环境变量的值直接修改为目标模型名称(如 `deepseek-v4-pro`),不要依赖 `_NAME` 字段。
// ~/.claude/settings.json{"env": {"ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-flash","ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro","ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-pro"}}
Affected Versions
Section titled “Affected Versions”ToolClaude Code
Version3.15.0
PlatformsLinux
Source Issues
Section titled “Source Issues”本页汇总自 2 个真实 issue
- 为什么在 cc-switch 界面上设置了实际模型,但 `settings.json` 里显示的还是原来的 Claude 模型?
- cc-switch 界面可能将目标模型写入了 `ANTHROPIC_DEFAULT_*_MODEL_NAME` 字段,但代理实际只读取 `ANTHROPIC_DEFAULT_*_MODEL` 字段。你需要手动修改 `settings.json` 中的 `_MODEL` 字段。
- 在 cc-switch 终端打开可以准确映射,为什么外部不行?
- 在 cc-switch 终端内运行时,环境变量可能被正确覆盖或注入。但在外部终端使用时,Claude Code 读取的是 `~/.claude/settings.json` 中的持久化配置,因此必须确保该文件中的 `_MODEL` 字段已正确修改为目标模型。
ANTHROPIC_AUTH_TOKEN 和 ANTHROPIC_API_KEY打开 `~/.claude/settings.json`,删除重复的 auth 环境变量,只保留当前供应商需要的 `ANTHROPIC_AUTH_TOKEN` 或 `ANTHROPIC_API_KEY`,保存后重启 Claude Code。命中率只有40%多,而且速度特别慢 Claude Code在 .claude/settings.json 中禁用 CLAUDE_CODE_ATTRIBUTION_HEADER 动态归属头,解决第三方模型缓存失效导致的降速与高消耗问题。Codex 供应商 API Key 重启或切换后互相覆盖开启 CC Switch 本地代理接管模式,或在 config.toml 使用 experimental_bearer_token 绕过 auth.json 同步缺陷。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。