---
title: "自架 New API 模型閘道：統一管理 Claude、OpenAI 和 Gemini，並串接 Claude Code 與 Codex"
description: "用 Zenavo 在自己的伺服器上部署 New API，把多家模型服務商統一成一個 API，依人發放金鑰和額度，再讓 Claude Code、Codex CLI 和 Open WebUI 透過它呼叫模型。"
date: 2026-11-12
language: zh-TW
url: https://zenavo.app/zh-TW/blog/self-host-new-api
---

# 自架 New API 模型閘道：統一管理 Claude、OpenAI 和 Gemini，並串接 Claude Code 與 Codex

團隊裡有人用 Claude Code，有人用 Codex CLI，還有人在 Open WebUI 裡聊天。每個工具各自存一份服務商金鑰，用量分散在不同的帳單上，誰用了多少、該撤銷哪一把金鑰，都很難說清楚。

[New API](https://github.com/QuantumNous/new-api) 是一個開源的模型閘道：你把 OpenAI、Anthropic、Gemini 等服務商的 API 金鑰設定在它後面，再給每個人或每個工具一把由 New API 簽發的金鑰，各自設定可用模型和額度。它同時提供 OpenAI Chat Completions、Responses、Anthropic Messages 和 Gemini 格式的 API，所以常見的程式開發工具都能直接串接。

本文用 Zenavo 的 New API 範本，把閘道部署到你租用或自有的伺服器上。伺服器、Zenavo 和上游模型 API 各自計費；New API 只負責轉發請求和計量，不會讓模型呼叫變便宜。New API 側重團隊多成員的金鑰發放與額度記帳；如果主要是給自己或小團隊的編碼代理（Claude Code、Codex）做多協定轉換與故障切換，也可以參考更輕量的 [Magpie](https://zenavo.app/zh-TW/blog/self-host-magpie)。

## 部署 New API

先在 Zenavo [連接一台 Linux 伺服器](https://docs.zenavo.app/zh-TW/servers/add-a-server)，再打開 [New API 範本](https://zenavo.app/deploy?template=new-api)，選擇伺服器並部署。

目前範本的設定如下：

| 設定 | 值或用途 |
|---|---|
| 映像檔 | `calciumion/new-api:latest` |
| HTTP 連接埠 | `3000` |
| 磁碟區 | `/data`，存放預設的 SQLite 資料庫和日誌 |
| `SESSION_SECRET` | 建立專案時自動產生，用來簽署登入工作階段 |
| `TZ` | `UTC`，可以改成你所在的時區 |

`latest` 會跟著上游更新。打算長期使用時，在服務 **Settings** 的 **Source** 中把映像檔標籤改成你測試過的固定版本，並記錄下來。

## 綁定網域，馬上完成初始設定

在 new-api 服務的 **Networking** 頁為 `3000` 連接埠綁定網域，例如 `ai.example.com`，新增指向伺服器的 A 記錄，等待 HTTPS 生效。步驟見[網域與 HTTPS](https://docs.zenavo.app/zh-TW/networking/domains)。

第一次開啟網站時，New API 會進入設定精靈，由你建立管理員帳號。閘道拿到服務商金鑰後就會花錢，所以網域一生效就自己完成初始設定，再到系統設定確認是否允許新使用者自行註冊。只給自己和團隊使用時，請關閉公開註冊，由管理員建立帳號。

## 新增渠道：串接上游服務商

New API 把每個上游連線稱為 **渠道（Channels）**。在 **渠道（Channels）** 頁新增一個：選擇服務商類型，填入該服務商的 API 金鑰和要開放的模型，儲存後點 **測試（Test）**，確認能收到回應。

幾點建議：

- 服務商金鑰只填在渠道裡，不要寫進 Zenavo 的變數，也不要出現在截圖和聊天紀錄中。
- 為渠道取清楚的名稱，例如「Anthropic 官方」，之後看日誌、停用渠道都比較方便。
- 只開放實際需要的模型。清單裡列得出來的模型，不代表你的服務商帳號都有權限呼叫。
- 使用服務商正式的 API 金鑰，並遵守它的使用條款。不要把個人的聊天訂閱包裝成 API 轉售或分享給別人。

## 發放金鑰和額度

在 **令牌（Tokens）** 頁為每個人或每個工具建立一把金鑰，設定可用模型、額度和有效期限。這把 `sk-` 開頭的金鑰由 New API 簽發：外洩時只要在這裡刪除它，不必輪換服務商的金鑰。

建議依「人 × 工具」分開發放，例如「小王的 Claude Code」和「小王的 Open WebUI」。這樣用量一目了然，撤銷其中一把也不會影響其他工具。

## 串接 Claude Code

Claude Code 可以透過環境變數，把請求送到自訂的 Anthropic Messages 端點。在你的電腦上執行：

```bash
export ANTHROPIC_BASE_URL="https://ai.example.com"
export ANTHROPIC_AUTH_TOKEN="sk-你在 New API 建立的令牌"
claude
```

`ANTHROPIC_BASE_URL` 只填網域，不要加 `/v1`：Claude Code 會自己補上 `/v1/messages`。如果 Claude Code 請求的模型名稱和渠道裡的不一樣，可以在 New API 的渠道中設定模型對應，或用 Claude Code 的 `/model` 選擇閘道提供的模型。如果你想直接在 Claude Code 裡透過 MCP 與 Skills 查看日誌、部署和回滾 Zenavo 服務，可以接著看[用 Claude Code 部署和除錯 Zenavo 專案](https://zenavo.app/zh-TW/blog/claude-code-deploy-debug)。

## 串接 Codex CLI

Codex CLI 在 `~/.codex/config.toml` 中定義自訂服務商。把模型換成你在渠道裡開放的模型：

```toml
model = "你在渠道裡開放的模型名稱"
model_provider = "newapi"

[model_providers.newapi]
name = "New API"
base_url = "https://ai.example.com/v1"
env_key = "NEWAPI_API_KEY"
wire_api = "responses"
```

接著執行 `export NEWAPI_API_KEY="sk-…"`，再啟動 `codex`。注意這裡的 `base_url` 要包含 `/v1`，和 Claude Code 不同。

## 串接 Open WebUI 與 LobeHub

如果你有在用 [Open WebUI](https://zenavo.app/zh-TW/blog/self-host-open-webui)，打開 **Settings → Admin → Connections**，新增一個 OpenAI 相容連線：Base URL 填 `https://ai.example.com/v1`，API Key 填一把專門給 Open WebUI 的令牌。如果用的是 [LobeHub](https://zenavo.app/zh-TW/blog/self-host-lobehub)，同樣在服務商設定或 `OPENAI_PROXY_URL` 中填入 `https://ai.example.com/v1` 即可。

兩者在同一個 Zenavo 專案裡時（用 **Add Service → Templates** 把 New API 加進 Open WebUI 所在的專案），可以改走私有網路：`http://new-api.zenavo.internal:3000/v1`。這樣請求就不會離開伺服器，詳見[私有網路](https://docs.zenavo.app/zh-TW/networking/private)。

## 備份與升級

New API 的帳號、渠道和令牌都存在 `/data` 磁碟區裡，其中包含你的服務商金鑰，所以備份檔要和金鑰本身一樣嚴格保管。

在維護時段停止專案，在 new-api 服務的 **Backup & Restore** 頁備份磁碟區，完成後再啟動專案，並下載一份自行保存。升級前先讀版本說明，先備份再升級。如果升級改動了資料庫結構，單純換回舊映像檔不一定能復原，需要還原升級前的備份。

## 常見問題

**Claude Code 回傳 404 或連不上？**
先檢查 `ANTHROPIC_BASE_URL` 結尾是不是多了 `/v1`，再到 New API 的日誌看請求有沒有送達、用的是哪個模型名稱。

**Codex 顯示模型不存在？**
`config.toml` 中的 `model` 必須是渠道有開放、而且令牌允許使用的模型。也請確認 `wire_api` 設為 `responses`。

**New API 會儲存對話內容嗎？**
它會記錄呼叫日誌和用量，記錄哪些欄位取決於版本和設定。請求仍然會送到上游服務商：閘道架在自己的伺服器上，不代表資料只留在本機。

**一台小伺服器夠用嗎？**
New API 本身很輕量，負載主要來自同時進行的請求。多人同時以串流方式產生長篇回應時，請留意伺服器的記憶體和頻寬。

從 [New API 範本](https://zenavo.app/deploy?template=new-api)開始：先完成初始設定、關閉公開註冊，再新增渠道、發放令牌，最後把程式開發工具指向它。
