# CC Switch 代理功能使用指南 ## 功能介绍 CC Switch 的代理功能是一个本地 HTTP 代理服务器,可以统一管理 Claude Code、Codex 和 Gemini CLI 的 API 请求。主要特性包括: - **统一代理入口** - 所有 CLI 应用的请求通过本地代理转发 - **自动故障转移** - 当前供应商故障时自动切换到备用供应商 - **按应用控制** - 可独立控制每个应用是否启用代理 - **配置保护** - 自动备份原始配置,停止代理时安全恢复 ## 快速开始 ### 1. 启动代理 在 CC Switch 主界面,点击右上角的 **Proxy** 按钮,可以看到代理控制面板。 点击 **启动代理** 按钮启动本地代理服务器。代理默认监听 `127.0.0.1:15721`。 ### 2. 启用应用接管 代理启动后,你可以选择让哪些应用的请求通过代理: - **Claude** - 接管 Claude Code 的 API 请求 - **Codex** - 接管 Codex CLI 的 API 请求 - **Gemini** - 接管 Gemini CLI 的 API 请求 点击对应应用的开关即可启用/禁用接管。 > **注意**:启用接管后,CC Switch 会自动修改对应应用的配置文件,将 API 端点指向本地代理。原始配置会被安全备份。 ### 3. 正常使用 CLI 启用接管后,你可以正常使用各个 CLI 工具。所有请求都会经过 CC Switch 代理转发到配置的供应商。 ### 4. 停止代理 当你不再需要代理时,点击 **停止代理** 按钮。CC Switch 会: 1. 安全关闭代理服务器 2. 自动恢复所有应用的原始配置 3. 清除代理状态 ## 自动故障转移 ### 工作原理 代理功能内置了智能故障转移机制: 1. **健康监控** - 实时监控每个供应商的响应状态 2. **熔断器** - 连续失败 5 次后触发熔断,暂停使用该供应商 3. **自动切换** - 熔断后自动切换到列表中的下一个供应商 4. **自动恢复** - 30 秒后尝试恢复熔断的供应商 ### 配置故障转移 要使用故障转移功能,你需要: 1. 在对应应用下添加多个供应商(至少 2 个) 2. 启动代理并启用接管 3. 当主供应商故障时,代理会自动切换到备用供应商 ### 健康状态指示 在供应商卡片上可以看到健康状态指示: - **绿色** - 供应商正常 - **红色** - 供应商故障/熔断中 - **灰色** - 未使用代理或未检测 ## 按应用接管 v3.9.0 新增了按应用分粒度控制功能: - 你可以只接管 Claude,而让 Codex 使用原始配置 - 每个应用的接管状态独立管理 - 启用/禁用不会影响其他应用 ### 接管状态检测 CC Switch 通过检测配置备份来判断接管状态: - 存在备份 = 已接管 - 无备份 = 未接管 这确保了即使 CC Switch 异常退出,重新启动后也能正确识别状态。 ## 代理配置 在代理面板中,你可以配置以下参数: | 参数 | 默认值 | 说明 | |------|--------|------| | 监听地址 | 127.0.0.1 | 代理服务器绑定地址 | | 监听端口 | 15721 | 代理服务器端口 | | 最大重试 | 3 | 请求失败时的最大重试次数 | | 请求超时 | 120 秒 | 单个请求的超时时间 | | 启用日志 | 是 | 是否记录请求日志 | ## 常见问题 ### Q: 代理启动失败,提示端口被占用? A: 默认端口 15721 可能被其他程序占用。你可以: - 关闭占用该端口的程序 - 在代理配置中修改端口号 ### Q: 启用接管后 CLI 无法使用? A: 请检查: 1. 代理服务器是否正常运行(查看代理面板状态) 2. 供应商配置是否正确(API Key 等) 3. 网络连接是否正常 ### Q: 如何恢复原始配置? A: 点击 **停止代理** 按钮,CC Switch 会自动恢复所有应用的原始配置。 如果 CC Switch 异常退出,重新启动后会检测到之前的备份,你可以: - 点击停止代理来恢复配置 - 或继续使用代理功能 ### Q: 故障转移没有生效? A: 请确保: 1. 配置了至少 2 个供应商 2. 代理已启动且接管已启用 3. 故障转移只在代理模式下工作 ### Q: 代理会影响性能吗? A: 本地代理的延迟开销非常小(通常 < 1ms)。但如果启用了请求日志,在高频请求场景下可能会有少量性能影响。 ## 技术细节 ### 配置文件位置 启用接管后,CC Switch 会修改以下配置文件: | 应用 | 配置文件 | 修改内容 | |------|----------|----------| | Claude | `~/.claude/settings.json` | `apiBaseUrl` 指向代理 | | Codex | `~/.codex/config.toml` | `[api] baseUrl` 指向代理 | | Gemini | `~/.gemini/.env` | `GEMINI_BASE_URL` 指向代理 | 原始配置备份在 CC Switch 数据库中,停止代理时自动恢复。 ### 代理模式 代理服务器运行在接管模式下,会: 1. 接收来自 CLI 的 HTTPS 请求 2. 根据当前供应商配置转发到真实 API 端点 3. 返回响应给 CLI 4. 记录请求日志和健康状态 ### 数据库表 代理功能使用以下数据库表: - `proxy_config` - 代理配置 - `provider_health` - 供应商健康状态 - `proxy_request_logs` - 请求日志 - `circuit_breaker_config` - 熔断器配置 - `proxy_live_backup` - Live 配置备份