找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3780

积分

0

好友

499

主题
发表于 1 小时前 | 查看: 4| 回复: 0

什么是 9Router ?

9Router 是一个开源的 AI 编程路由器,能将 Claude CodeCursorClineOpenClaw 等主流 AI 编程工具连接到 60+ AI 提供商和 100+ 模型。它通过智能三层切换策略(订阅 → 低价 → 免费)确保编程工作永不中断,配合 RTK Token 节省器可节省 20-40% 的输入 tokens

主要特点

  • RTK Token 节省器:自动压缩 git diffgrepls 等工具输出,每次请求节省 20-40% 输入 tokens
  • 智能三层切换:订阅 → 低价 → 免费,自动切换,零停机时间
  • 60+ AI 提供商:支持 Claude CodeOpenAIGLMMiniMaxKimiGeminiDeepSeek
  • 100+ 模型Claude Opus/Sonnet/HaikuGPT-5.5GLM-5.1MiniMax M2.7
  • 免费模型支持OpenCode Free(无需认证)、Vertex AI$300 额度)
  • 实时配额追踪:追踪 token 消耗和配额重置时间,充分利用订阅价值
  • 格式转换OpenAIClaudeGeminiCursor,无缝兼容任何 CLI 工具
  • 多账户支持:每个提供商支持多个账户,自动轮询或基于优先级的路由
  • 云同步:跨设备同步提供商、组合和设置
  • 开源免费:基于 MIT 协议,完全免费

应用场景

  • 充分利用订阅:有 Claude Pro/MaxCodexCopilot 订阅的用户可以通过低价备份最大化订阅价值
  • 零成本编程:使用 Kiro AI + OpenCode Free + Vertex AI 组合,可实现 $0 成本使用 AI 编程
  • 24/7 不中断编码:多层切换策略确保即使配额耗尽也能自动切换到备用模型
  • 开发测试环境:开发者可以快速切换不同模型进行测试和对比

Endpoint Proxy管理界面,展示各类AI服务提供商及连接状态

9Router 核心理念是让编程永不停歇,以最小成本结合 RTK 节省 20-40% tokens

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 decolua,选择第二个 decolua/9router,版本选择 latest

本文写作时,latest 版本对应为 0.4.41

Docker注册表界面,搜索并选择decoula/9router镜像

docker 文件夹中创建一个新文件夹 9router,并在其中建一个子文件夹 data

文件夹 装载路径 说明
docker/9router/data /app/data 存放数据

高级设置中的存储空间配置界面

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 20128
本地端口 容器端口
20128 20128

端口设置界面,配置本地和容器端口映射

环境

变量 默认值 说明
DATA_DIR /app/data 主应用数据库位置
JWT_SECRET change-me... JWT 签名密钥(生产环境请更改)
INITIAL_PASSWORD 123456 首次登录密码
PORT 20128 服务端口
HOSTNAME 0.0.0.0 绑定主机

环境变量说明

  • JWT_SECRET 用于 JWT 签名密钥,生产环境请更改为随机字符串,可以使用 openssl rand -hex 32 生成;
  • INITIAL_PASSWORD 是首次登录的默认密码,建议安装后修改;

环境变量配置界面,包含INITIAL_PASSWORD和JWT_SECRET等关键设置

更多环境变量,可以参考官方文档:https://github.com/decolua/9router/blob/master/.env.example

命令行安装

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 9router 和 子目录
mkdir -p /volume1/docker/9router/data

# 进入 9router 目录
cd /volume1/docker/9router

# 运行容器
docker run -d \
  --name 9router \
  --restart=unless-stopped \
  -p 20128:20128 \
  -v $(pwd)/data:/app/data \
  -e JWT_SECRET=change-me-to-a-long-random-secret \
  -e INITIAL_PASSWORD=123456 \
  decolua/9router:latest

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3.8'

services:
  9router:
    image: decolua/9router:latest
    container_name: 9router
    restart: unless-stopped
    ports:
      - "20128:20128"
    volumes:
      - ./data:/app/data # 数据持久化
    environment:
      - DATA_DIR=/app/data # 数据目录
      - JWT_SECRET=change-me-to-a-long-random-secret # JWT 签名密钥(生产环境请更改)
      - INITIAL_PASSWORD=123456 # 首次登录密码
      - PORT=20128 # 服务端口
      - HOSTNAME=0.0.0.0 # 绑定主机

然后通过 SSH 登录到您的群晖,执行下面的命令:

# 新建文件夹 9router 和 子目录
mkdir -p /volume1/docker/9router/data

# 进入 9router 目录
cd /volume1/docker/9router

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d 

文件管理器界面,显示9router目录下的data文件夹和docker-compose.yml文件

运行

在浏览器中访问 http://<群晖IP>:20128 即可进入登录界面

9Router的登录界面,提示输入密码

默认密码登录:123456(建议首次登录后在设置中修改)

9Router主界面,显示API端点等核心配置

中文

右上角进入设置,选择语言

9Router界面,右上角菜单展开,红箭头指向更改日志和主题选项

找到简体中文,不用重启

9Router设置界面,展示Token节省器和API密钥模块

API 密钥

下拉,创建 API 密钥

创建API密钥的界面,提示用户保存密钥

这个配合上面的 API 端点,用于第三方工具的调用

显示已创建的API密钥,包含以sk-开头的密钥字符串

提供商

进入 提供商

9Router的提供商管理界面,展示各类AI服务提供商

根据自己已有的账号进行添加

提供商列表,卡片形式展示,显示各提供商的连接状态

每个提供商都可以添加多个账户,前提是你有的话,9Router 会自动轮询

OpenRouter服务的连接详情,显示两个在线节点和可用模型列表

别忘记了添加模型,不然就是个空壳

可用模型列表,展示推荐的免费模型,如openrouter/openrouter/free

组合

进入组合,点 创建组合

创建组合的对话框界面,包含组合名称输入框和添加模型按钮

这里创建一个 my-model 作为例子,把全部的模型都加进去了

编辑组合界面,展示已添加的模型列表及排序、删除按钮

这样配置的时候,只要设置一个模型就可以

claude code

claude code~/.claude/settings.json 为例

{
  "hasCompletedOnboarding": true,
  "env": {
    "ANTHROPIC_BASE_URL": "http://192.168.0.197:20128/v1",
    "ANTHROPIC_AUTH_TOKEN": "sk-xxxxx",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "my-model",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "my-model",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "my-model"
   }
}

docker 部署可能看不到上面这串代码

Claude Code CLI配置界面,提示未被检测到,提供手动配置选项

如果是本机安装的 9Router 则是可以的

Claude Code配置面板,展示API端点、密钥、模型等选项

这种配置的好处类似于 openrouter/openrouter/free,完全就是一个路由,不用频繁去切换模型

codex

如果你用 Codex 的话,直接用 my-model 会有个警告

Model metadata for `my-model` not found. Defaulting to fallback metadata; this can degrade performance and cause issues.

所以建议再增加一个组合叫 gpt 5.5,里面只要添加一个 my-model 就可以,不用一个一个的添加

组合列表界面,显示my-mode1和gpt-5.5两个组合条目

codex 的手动设置分为两个文件

~/.codex/config.toml

# 9Router Configuration for Codex CLI
model = "gpt-5.5"
model_provider = "9router"

[model_providers.9router]
name = "9Router"
base_url = "http://192.168.0.197:20128/v1"
wire_api = "responses"

[agents.subagent]
model = "gpt-5.5"

~/.codex/auth.json

{
  "auth_mode": "apikey",
  "OPENAI_API_KEY": "sk-xxxxx"
}

使用情况

一旦开始使用,可以实时看到使用情况

9Router的使用量和分析监控界面,展示API请求数、Token消耗和预估成本

注意事项

  1. 安全建议:生产环境请务必修改 JWT_SECRETINITIAL_PASSWORD
  2. 数据持久化:务必挂载 /data:/app/data 以保存配置和数据库
  3. 端口占用:默认使用 20128 端口,启动前请确认该端口未被占用
  4. 免费模型OpenCode Free(无需认证)是最推荐的免费选项
  5. RTK 默认开启Token 节省器默认开启,可节省 20-40% 输入 tokens
  6. 多账户支持:每个提供商可添加多个账户,9Router 会自动轮询

参考文档

通过在云栈社区翻阅各种避坑指南,你会发现,像 9Router 这类集成了 人工智能 与编程的工具,其核心价值在于将复杂的多模型调度简化。配合 开源实战 中汲取的折腾经验,我们能用最低成本搭建一套永不离线的开发环境。




上一篇:eFuse技术详解:从原理到选型,如何用电子保险丝实现可设计的电路保护?
下一篇:Fragnesia(CVE-2026-46300):一个月内第三起Linux内核本地提权漏洞
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-5-16 20:21 , Processed in 0.635003 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表