🛰 nadoutong proxy · 接入教程

→ 管理后台

本服务把 GitHub Copilot 订阅 + Anthropic OAuth + ChatGPT (Codex) OAuth 三个号池统一包装成 OpenAI / Anthropic 兼容 API,让 Codex CLI、Claude Code CLI 等任意客户端都能复用。号池调度 + 自动 OAuth 续期,按 X-Backend header 选链路;ChatGPT 池经 AWS EC2 出口中转绕过 chatgpt.com 对 CF Workers 的 WAF 封禁。

📋 目录

① 申请 token

所有接入都需要一个 nadt_… bearer token:

  1. 找管理员(或自己)登录 /admin 管理后台。
  2. 切到「Tokens」标签 → 「+ 创建 Token」→ 设置 RPM / 日额度(可选)→ 提交。
  3. 记下创建后弹出的 nadt_xxxxxxxx… 字符串(只展示一次)。
⚠️ token 只能看一次。关闭弹窗后 proxy 只保存哈希,丢失就只能重新签发。

② Claude Code CLI 接入 推荐

Claude Code 走 Anthropic 原生 /v1/messages 协议,proxy 自动翻译到 Copilot 后端。

2.1 安装 Claude Code CLI

npm install -g @anthropic-ai/claude-code
npm install -g @anthropic-ai/claude-code
如果 npm 没装:先装 Node.js LTS,重启 PowerShell 后再跑上面命令。
npm install -g @anthropic-ai/claude-code

2.2 配置 settings.json

路径:~/.claude/settings.json(macOS / Linux / WSL)或 %USERPROFILE%\.claude\settings.json(Windows)。不存在就新建。

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://nadoutong-proxy.saiswjcn.workers.dev",
    "ANTHROPIC_AUTH_TOKEN": "nadt_把上面拿到的token贴在这里",
    "ANTHROPIC_MODEL": "claude-sonnet-4.6",
    "ANTHROPIC_SMALL_FAST_MODEL": "claude-haiku-4.5"
  }
}
Claude Code 启动时会把 env 块注入进程,等价于 export,但只对 claude 生效,不污染全局 shell。
一键写入命令(可选)
mkdir -p ~/.claude && cat > ~/.claude/settings.json <<'EOF'
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://nadoutong-proxy.saiswjcn.workers.dev",
    "ANTHROPIC_AUTH_TOKEN": "nadt_把token贴这里",
    "ANTHROPIC_MODEL": "claude-sonnet-4.6",
    "ANTHROPIC_SMALL_FAST_MODEL": "claude-haiku-4.5"
  }
}
EOF
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.claude" | Out-Null
@'
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://nadoutong-proxy.saiswjcn.workers.dev",
    "ANTHROPIC_AUTH_TOKEN": "nadt_把token贴这里",
    "ANTHROPIC_MODEL": "claude-sonnet-4.6",
    "ANTHROPIC_SMALL_FAST_MODEL": "claude-haiku-4.5"
  }
}
'@ | Set-Content -Encoding UTF8 "$env:USERPROFILE\.claude\settings.json"

2.3 验证

claude --version
echo "你好,请用一句话介绍自己" | claude
✅ 成功标志:claude 正常返回回答,且 /admin 的「审计日志」里能看到 /v1/messages 命中记录。

2.4 常用模型字段值(Copilot 链路)

ANTHROPIC_MODEL说明
claude-sonnet-4.6最新 Sonnet,日常首选
claude-opus-4.7最新 Opus
claude-opus-4.6上一代 Opus,稳定可用
claude-haiku-4.5轻快,适合 small_fast_model
注意:以上是 Copilot 别名,由 Copilot 后端识别,并非 Anthropic 原生 ID。要直连 Anthropic 用真实 ID(claude-sonnet-4-5-20250929 等),请看下面的「Claude 直连」段。

②b Claude 直连后端 X-Backend

如果你想绕开 Copilot,直接打到 api.anthropic.com(用 proxy 内置的 sk-ant-oat01-… OAuth 池),加一行 ANTHROPIC_CUSTOM_HEADERS 头即可。模型 ID 必须用 Anthropic 原生格式。

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://nadoutong-proxy.saiswjcn.workers.dev",
    "ANTHROPIC_AUTH_TOKEN": "nadt_把token贴这里",
    "ANTHROPIC_MODEL": "claude-opus-4-7",
    "ANTHROPIC_SMALL_FAST_MODEL": "claude-haiku-4-5",
    "ANTHROPIC_CUSTOM_HEADERS": "X-Backend: claude"
  }
}
真实 Anthropic ID说明
claude-opus-4-7Opus 4.7 (最新)
claude-sonnet-4-6Sonnet 4.6
claude-haiku-4-5Haiku 4.5
claude-sonnet-4-5-20250929Sonnet 4.5 (上代)
claude-opus-4-1-20250805Opus 4.1 (上代)
两条链路互不冲突:去掉 X-Backend 头 + 用 Copilot 别名 ⇒ 走 Copilot 池;加上 X-Backend: claude + 用 Anthropic 原生 ID ⇒ 走 sk-ant-oat 池。

③ Codex CLI 接入

Codex CLI 走 OpenAI /responses 协议(base_url 后自动加 /responses)。

3.1 安装 Codex CLI

npm install -g @openai/codex
npm install -g @openai/codex
需要先装 Node.js LTS

3.2 配置 config.toml

路径:~/.codex/config.toml(macOS / Linux)或 %USERPROFILE%\.codex\config.toml(Windows)。不存在就新建。

preferred_auth_method = "apikey"
model_provider = "nadoutong"
model = "gpt-5-codex"

[model_providers.nadoutong]
name = "nadoutong"
base_url = "https://nadoutong-proxy.saiswjcn.workers.dev"
wire_api = "responses"
env_key = "OPENAI_API_KEY"
http_headers = { "X-Backend" = "copilot" }     # 走 Copilot 池(默认推荐,便宜稳定)
# http_headers = { "X-Backend" = "openai" }    # 改成这行 → 走 ChatGPT (Codex) OAuth 池
X-Backend 选择:
copilot(默认)—— 走 GitHub Copilot 后端,支持 gpt-5.x / claude-sonnet-4.x / gemini-3.x 等所有别名模型。
openai —— 走真正的 ChatGPT (Codex CLI) OAuth 池,经 AWS EC2 中转打到 chatgpt.com/backend-api/codex/responses(绕开 CF Workers 出口被 chatgpt.com WAF 封 403 的限制)。仅 gpt-5 系列可用。
・不填 http_headers ⇒ 跟填了 copilot 等价,默认走 Copilot。

3.3 配置 auth.json(存放 token)

路径:~/.codex/auth.json(macOS / Linux)或 %USERPROFILE%\.codex\auth.json(Windows)。不存在就新建。

{
  "OPENAI_API_KEY": "nadt_把token贴这里"
}
Codex 启动时会把 auth.json 里的字段灌进进程 env,env_key 就能读到。完全不依赖系统环境变量。
兜底:如果你的 codex 版本不支持自定义字段注入(升级 npm i -g @openai/codex@latest 即可),临时在启动前 export OPENAI_API_KEY=nadt_xxx 也能跑。
一键写入命令(可选)
mkdir -p ~/.codex
cat > ~/.codex/config.toml <<'EOF'
preferred_auth_method = "apikey"
model_provider = "nadoutong"
model = "gpt-5-codex"

[model_providers.nadoutong]
name = "nadoutong"
base_url = "https://nadoutong-proxy.saiswjcn.workers.dev"
wire_api = "responses"
env_key = "OPENAI_API_KEY"
http_headers = { "X-Backend" = "copilot" }
EOF
cat > ~/.codex/auth.json <<'EOF'
{ "OPENAI_API_KEY": "nadt_把token贴这里" }
EOF
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.codex" | Out-Null
@'
preferred_auth_method = "apikey"
model_provider = "nadoutong"
model = "gpt-5-codex"

[model_providers.nadoutong]
name = "nadoutong"
base_url = "https://nadoutong-proxy.saiswjcn.workers.dev"
wire_api = "responses"
env_key = "OPENAI_API_KEY"
http_headers = { "X-Backend" = "copilot" }
'@ | Set-Content -Encoding UTF8 "$env:USERPROFILE\.codex\config.toml"
@'
{ "OPENAI_API_KEY": "nadt_把token贴这里" }
'@ | Set-Content -Encoding UTF8 "$env:USERPROFILE\.codex\auth.json"

3.4 验证

codex --version
codex "用 Python 写个快速排序"

3.5 常用模型字段值

modelX-Backend说明
gpt-5.5copilot 或 openai最新旗舰,默认推荐;走 openai 即真正的 ChatGPT (Codex) OAuth 池
gpt-5.4copilot上代旗舰
gpt-5.4-minicopilot更便宜的轻量版
gpt-5-codexopenaiChatGPT Codex 系列原生 ID
claude-sonnet-4.6copilotCodex 也能调 Claude(走 Copilot 链路)
Codex CLI 当前版本只支持 wire_api = "responses",已弃用 "chat"。所以仅 GPT-5 系列、Claude 系列等支持 /v1/responses 的模型可在 Codex CLI 里直接用;GPT-4o / GPT-4.1 / GPT-3.5 等仅 chat-completions 的模型,请改用下面的 OpenAI SDK / curl 方式。
Codex CLI 的 preferred_auth_method = "apikey" 至关重要,否则它会跳 ChatGPT OAuth 而不是用 env_key。

④ 任意 OpenAI 兼容 SDK

支持的 endpoint(带不带 /v1 前缀都可以,proxy 会自动归一化):

所以 base_url 用裸根 URL https://nadoutong-proxy.saiswjcn.workers.dev 就够了,无需 /v1。Claude Code 和 Codex CLI 配置里的 base 现在完全一致。

Python(openai SDK)

from openai import OpenAI
client = OpenAI(
    base_url="https://nadoutong-proxy.saiswjcn.workers.dev",
    api_key="nadt_把token贴这里",
)
resp = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hi"}],
)
print(resp.choices[0].message.content)

curl

curl https://nadoutong-proxy.saiswjcn.workers.dev/chat/completions \
  -H "Authorization: Bearer nadt_xxx" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-4o","messages":[{"role":"user","content":"Hi"}]}'
curl.exe https://nadoutong-proxy.saiswjcn.workers.dev/chat/completions `
  -H "Authorization: Bearer nadt_xxx" `
  -H "Content-Type: application/json" `
  -d '{\"model\":\"gpt-4o\",\"messages\":[{\"role\":\"user\",\"content\":\"Hi\"}]}'
PowerShell 里一定要用 curl.exe,否则会调到 PowerShell 内置的 Invoke-WebRequest 别名,参数语法完全不同。
curl https://nadoutong-proxy.saiswjcn.workers.dev/chat/completions ^
  -H "Authorization: Bearer nadt_xxx" ^
  -H "Content-Type: application/json" ^
  -d "{\"model\":\"gpt-4o\",\"messages\":[{\"role\":\"user\",\"content\":\"Hi\"}]}"
Windows 10/11 自带 curl.exe。注意 JSON 双引号需要 \" 转义,行尾续行符是 ^

⑤ 可用模型清单

实际可用模型由 GitHub Copilot 后台控制,会随时变化。查看实时清单 →(需要 Authorization: Bearer nadt_xxx

常见可用:

⑥ 排错

现象原因 / 处理
401 Unauthorizedtoken 错 / 没设环境变量 / 用错变量名(claude 看 ANTHROPIC_AUTH_TOKEN,codex 看 config.toml 的 env_key)
429 rate_limit命中 token 自身的 RPM/日额度 → 在 /admin 调大;或所有号池账号都被 Copilot 拉黑了 → 看 /admin 的「号池」里 needs_reauth 状态
503 upstream_unavailable号池没有可用账号。去 /admin → 号池 → 「+ 添加账号」走一键 device flow 加一个
codex 仍然弹 ChatGPT 登录config.toml 漏了 preferred_auth_method = "apikey"
claude 一直转圈检查 ANTHROPIC_BASE_URL 是否带了多余的 /v1(不要带)
X-Backend: claude 报 not_found_error用了 Copilot 别名(claude-sonnet-4.6)打直连,必须换成 Anthropic 原生 ID(claude-sonnet-4-5-20250929
X-Backend: claude 报 needs_reauth / 401Claude 池里所有 sk-ant-oat01-… token 都失效了,去 /admin → Claude 池重新加一把
X-Backend: openai 报 503 upstream_unavailableChatGPT 池里没号 → /admin → ChatGPT 池 → 加一把(贴 ~/.codex/auth.json 全文)
X-Backend: openai 报 relay_unreachable / 502EC2 relay 挂了或 EIP 变了。去 AWS console 起 relay、然后 wrangler secret put OPENAI_RELAY_URL 重写并 deploy
codex CLI 启动报 wire_api = "chat" is no longer supported当前 codex 版本只能用 responses。改 config.toml 把 wire_api 改回 responses,并换成 GPT-5 系列模型
SSE 流断断续续检查代理 / 公司网络是否吃 SSE。直连测试:curl --noproxy '*' …
Windows: 中文乱码 / 反斜杠错用 VS Code 以 UTF-8(无 BOM)保存 settings.json / config.toml / auth.json;路径分隔符用反斜杠 \ 或正斜杠 / 都行
Windows: 找不到 ~ 这个目录Windows 不识别 ~,全部换成 %USERPROFILE%\(cmd)或 $env:USERPROFILE\(PowerShell)

就这样

一次配好,享受所有 Copilot 模型。问题反馈 → 联系管理员或在 GitHub 提 issue。