编程 CLI Windows, macOS, Linux, Docker

9Router 是什么:先看清 AI 网关、免费额度与账号风险

9Router 把 Claude Code、Codex、Cursor 等客户端接到一个本地网关,再按配置转发给不同模型和账号。真正值得关注的不是两条安装命令,而是请求如何切换、凭据存在哪里,以及哪些接入方式可能触发上游风控。

9router 9router github 9router proxy 9router 是什么 9router 使用 9router Claude Code 9router Codex 9router CLIProxyAPI

先说结论

9Router 值得研究,但不适合把主力账号和公司代码直接交进去做第一次测试。

它最有价值的部分,是把多个 AI 编程客户端、模型协议和上游账号收口到一个本地端点;最容易被忽略的部分,是这个端点同时掌握完整请求、API Key、OAuth refresh token 和路由决策。

使用场景判断
用自己合法持有的低权限 API Key 做多模型实验适合
个人沙盒环境测试 fallback 和协议兼容适合
把主力 Claude、Codex、Google 订阅账号做多账号轮询风险高,先核对上游规则
处理公司私有代码、客户数据或受监管数据不建议直接使用
要求每次请求固定同一模型、同一数据处理方不适合开启跨 provider fallback

本文核验日期为 2026-07-20。9Router 更新很快,provider、免费额度和模型名称应以当前 README 与 release 为准。

9Router 实际上是什么

9Router 是一个运行在本机或自建服务器上的 LLM gateway。Claude Code、Codex、Cursor、Cline、OpenCode 等客户端不再直接请求某一家模型服务,而是先请求 9Router 的兼容端点;网关再完成模型解析、协议转换、凭据选择、调用和响应转换。

flowchart LR clients("Claude Code / Codex / Cursor / Cline") router("9Router localhost:20128/v1") rules("协议转换 / 账号选择 配额跟踪 / fallback / RTK") providers("OpenAI / Anthropic / Gemini Kiro / Copilot / 兼容 API") clients -->|"兼容 API 请求"| router router --> rules rules -->|"选定账号与模型"| providers providers -->|"SSE / JSON 响应"| router router --> clients

它不是模型,也不是给 Claude Code 换皮的聊天客户端。更准确的类比是:给 AI 编程工具用的本地反向代理、协议适配器和路由控制面板

它真正解决的四个问题

1. 多客户端只维护一个入口

当 Claude Code、Codex、Cursor 和其他工具分别读取不同的环境变量、配置文件和 API 格式时,切换 provider 很容易留下互相覆盖的配置。9Router 把下游入口统一到本地 Base URL,再在 Dashboard 里维护模型和账号。

这和 CC Switch 的分工不同:CC Switch 主要管理各客户端配置;9Router 会进入真实请求链路,读取并修改请求后再转发。

2. 在不同协议之间做转换

OpenAI Chat、Responses、Anthropic Messages、Gemini 和部分 coding provider 的请求结构并不相同。9Router 的核心价值之一,是把工具调用、thinking、图片内容和 SSE 流转换成目标 provider 能理解的格式。

协议转换也会增加故障面。普通聊天成功,不代表长上下文、并行工具调用、reasoning 字段和中途取消都能保持一致。

3. 账号轮询和模型 fallback

9Router 可以在同一 provider 的多个账号之间轮询,也可以创建按顺序排列的 combo:前一个模型遇到符合条件的额度或请求错误后,再尝试后一个模型。

这里要纠正一个常见误解:它不是根据当前代码任务的语义,自动判断“Gemini 最适合推理、Claude 最适合写代码”。当前核心机制仍是配置顺序、账号状态和错误启发式驱动的 fallback。

4. 在请求进入模型前压缩工具输出

RTK Token Saver 会识别 git diffgreplstree 和日志等 tool_result,尝试减少输入 Token。对重复日志和超长目录列表可能有帮助,但不能把它理解成严格无损。

源码中的 smart-truncate 会保留开头和结尾,直接把中间行替换为 ... +N lines truncated。调试间歇性错误、审查 diff 或分析长日志时,中间被删除的内容可能正是关键证据。

需要保留原始工具输出时,可以关闭 RTK,或按 README 为单次请求设置:

X-9Router-Token-Saver: off

“免费无限”到底是什么意思

9Router 不向你出售 Token,也不承担模型推理成本。请求最终仍由上游 provider 执行,成本和额度取决于你的订阅、API Key、试用额度或上游免费活动。

当前 README 已经明确修正了早期宣传:iFlow、Qwen Code 和 Gemini CLI 的免费层在 2026 年停止;Kiro 免费层有月度上限;OpenCode Free 的模型列表会变化;Vertex 是新 GCP 账户的限时赠送额度。

因此更准确的表述是:

宣传说法实际边界
免费 AI router软件本身免费开源,上游推理未必免费
永不撞额度fallback 能降低中断概率,不能创造新额度或保证上游可用
40+ providers接入数量不等于每条线路都稳定、合规或完整兼容
节省 20-40% Token是项目口径,实际取决于工具输出类型,也可能以丢弃内容换取缩短

旧教程如果还推荐 iFlow、Qwen 或 Antigravity “无限免费”,先检查发布日期,不要照着旧 provider 列表配置。

9Router 和 CLIProxyAPI、CC Switch 怎么选

工具更像什么最适合的任务主要代价
9Router带 Dashboard 的本地 LLM gateway个人管理多 provider、配额、fallback 和客户端入口网关进入完整请求链路,状态和安全面较大
CLIProxyAPI底层账号转 API 服务自建账号池、给 NewAPI 或内部服务提供兼容 API更偏部署与配置,没有完整终端用户工作台
CC Switch客户端配置管理器切换 Base URL、Key、MCP、prompts 和 CLI 配置不负责修复上游协议或执行模型 fallback

不要把“是否基于另一个项目”的论坛猜测当成选型证据。对使用者真正重要的是:谁持有凭据、谁会修改请求、谁负责 fallback,以及出了问题能否缩小排查范围。

三种接入方式不是同一种风险

API Key:边界相对清楚

如果 provider 明确允许通过 API Key 调用,并且模型、计费和用途符合其文档,9Router 主要承担兼容网关角色。这仍然需要保护 Key,但通常比复用消费级订阅登录态更容易判断权限边界。

OAuth 或订阅账号:先核对服务条款

登录成功只说明 OAuth 流程完成,不代表 provider 允许把订阅权益代理给其他客户端、多人或自动账号池。多账号轮询也不会消除风控,只会让请求换账号继续发送。

公开 Issue 中已经出现 403、API ban、token revoked 和 Antigravity 账号受限案例。这些报告不能证明每个账号都会被封,但足以否定“登录成功就安全”的假设。

MITM:风险最高

9Router 还提供针对部分 IDE/客户端的 MITM 能力,可能涉及本地根证书、DNS 或 hosts 调整,以及对原客户端流量的拦截。它能解决无法直接修改 Base URL 的场景,但同时扩大证书、主机网络和客户端指纹风险。

如果只是给 Claude Code、Codex 或 OpenAI-compatible 客户端配置自定义 Base URL,不要为了省一步配置就启用 MITM。

本地运行不等于数据不出本机

“Local gateway”只表示网关进程在你的设备上。Prompt、源码片段、工具输出和附件仍然会被发送给最终选中的上游 provider;开启跨 provider fallback 后,数据处理方还可能在一次任务中变化。

另外,当前源码会把 provider 连接中的 accessTokenrefreshTokenapiKey 序列化到 SQLite 数据库。没有看到这一持久化路径上的静态加密层,因此至少应把 ~/.9router 当成密钥目录处理,而不是普通缓存。

第一次测试前的安全基线

官方 CLI 当前默认监听 0.0.0.0。项目已经为远程 API、Dashboard 和本地敏感路由增加了认证与访问控制,但个人电脑没有必要默认扩大到整个局域网。

先用独立低权限账号或低额度 Key,并限制为回环地址:

OBSERVABILITY_ENABLED=false 9router --host 127.0.0.1 --skip-update

这不是完整安装教程,而是一条更保守的首次运行基线。接下来还应检查:

  • Dashboard 是否已经设置独立强密码。
  • Cloud Sync、Cloudflare Tunnel、Tailscale 和 MITM 是否确实关闭。
  • ~/.9router 的文件权限、备份和同步软件是否合适。
  • RTK 是否先关闭,确保对照测试使用原始上下文。
  • combo 是否先只放一个 provider,确认协议完整后再增加 fallback。
  • 是否用 API Relay Check 或最小请求验证流式、工具调用和 Token 记录。

最终判断:该不该用

如果你的目标是研究多模型路由、统一几个合法 API Key,或者在个人沙盒里观察不同模型的 fallback,9Router 提供了比纯配置文件更完整的控制面板。

如果你的核心诉求只是“免费使用 Claude/Codex,不想管上游规则”,那恰恰是最危险的使用动机。免费额度会变,客户端指纹会变,OAuth 权限也可能被收紧;多账号并不能把不稳定链路变成正式 SLA。

把它当作实验性网关,而不是无限额度机器;先控制监听地址、凭据和日志,再决定是否让真实项目经过它。

资料来源

相关工具

相关教程

相关主题

常见问题

常见问题

9Router 是免费 AI 模型服务吗?

不是。9Router 本身负责路由,不提供无限算力。所谓免费主要来自 Kiro、OpenCode Free、Vertex 试用额度或其他上游活动,额度、模型和规则都可能变化。

9Router 会保存 API Key 和 OAuth Token 吗?

会。Provider 连接需要持久化 access token、refresh token 或 API Key。当前源码把这些字段序列化到本机 SQLite 数据库,使用前应保护数据目录并避免把数据库同步到不可信位置。

使用 9Router 会不会封 Claude、Codex 或 Google 账号?

不能给出不会封号的保证。普通 API Key 接入通常边界更清楚;把订阅 OAuth、网页登录态或特定客户端权益转给其他工具,以及使用 MITM 模式,可能违反上游规则或触发风控。

9Router fallback 后上下文会丢失吗?

网关会把当前请求中的消息和工具上下文转换后发给下一个模型,因此不是从空白会话开始。但不同模型对 reasoning、工具调用和上下文长度的处理不同,连续性不等于行为完全一致。

9Router 和 CLIProxyAPI 有什么区别?

两者都能把多账号和多 provider 转成兼容 API。CLIProxyAPI 更偏底层账号转 API 服务;9Router 增加了面向个人开发者的 Dashboard、配额视图、combo fallback、客户端配置和 Token Saver。