技能指北 | 白嫖 Kiro Pro 后,用 Kiro Proxy 接入 Claude Code

Kiro Proxy 封面

最近 Kiro 的新用户 Pro 活动挺香:新账号首次升级时,支付页有机会出现 20 美元订阅抵扣,最终金额显示为 $0.00。Pro 到手之后,再配合 Kiro Gateway 做一个自己的 Kiro Proxy,就可以把 Kiro 的额度接进 Claude Code 里。

本文分两部分:

  1. 先把 Kiro Pro 领到手。
  2. 再把 Kiro Pro 的额度通过 Kiro Proxy 接入 Claude Code。

我自己实际搭的是这条链路:

1
Claude Code -> CC Switch -> 自己的域名 -> ng -> Docker 容器 -> Kiro Gateway -> Kiro

文中的域名、Key、订阅地址、服务器地址都做了脱敏。示例里的 kiroproxy.example.comsk-********https://example.com/sub?token=******** 都要替换成你自己的配置。

一、先白嫖 Kiro Pro

这部分参考了拈花古佛那篇 Kiro Pro 活动文章,流程我重新整理了一遍,配图也是重新画的示意图,不是原站截图。

核心逻辑很简单:新用户升级 Pro,进入支付页后如果活动命中,会出现首月订阅抵扣,最终金额变成 $0.00。这个时候确认订阅,就能拿到一个月 Pro。

1. 准备一个纯净新号

活动通常面向首次注册、首次升级的新用户。建议准备一个没有注册过 Kiro 的 Google 或 GitHub 账号。

登录入口:

1
https://app.kiro.dev/signin

Kiro 登录页

注意几个点:

  • 尽量用没注册过 Kiro 的 Google 或 GitHub 账号。
  • 旧账号如果已经领过权益,不建议反复尝试。
  • 登录后先确认能正常进入 Kiro 控制台,再去升级 Pro。

2. 进入 Pro 升级页

登录之后进入账户或用量页面:

1
https://app.kiro.dev/account/usage

找到 Upgrade ProManage Plan 之类的入口。列表页通常会显示 Pro 原价,比如 $20/month。这个页面看到 20 美元不代表失败,因为真正的抵扣一般是在支付页结算时展示。

Kiro 套餐页,点 Upgrade to Pro

你要确认的是下一步支付页的最终金额。

3. 绑定可支付卡,看支付页是否变成 0 美元

进入支付页后,绑定一张可以正常支付的卡。理论上 Visa、MasterCard、信用卡、部分储蓄卡都可以,具体看支付页面支持什么。

如果优惠命中,支付页会出现类似这样的结算结果:

1
2
3
Plan price: $20.00
First month credit: -$20.00
Due today: $0.00

这里最重要的是 Due today。只要最终金额不是 $0.00,就先不要点订阅。先检查这几件事:

  • 当前账号是不是新账号。
  • 支付卡是否可用。
  • 活动是否还在。
  • Kiro 是否已经识别到首月订阅抵扣。

如果你没有可用卡,可以参考这个 Roogoo 注册链接:免费开卡注册链接。通过这个链接注册可免费开卡,支持 7 天 0 费率试用;是否升级终身 0 费率、余额收益、消费挖矿、邀请返佣等权益,以 Roogoo 页面展示为准。

虚拟卡属于第三方服务,可能存在风控、扣费失败、账号异常等风险。能用本人真实可支付卡,还是优先用真实卡。

4. 订阅成功后,立刻关掉下月续费

Pro 生效后,回到账户页面:

1
https://app.kiro.dev/account/usage

点击 Manage Plan,把后续套餐改回 Kiro Free。这样做的目的很简单:当月 Pro 继续用,下个月不自动扣费。

把下月套餐切回 Kiro Free

建议你订阅成功后马上做这一步,不要想着月底再取消。忘了取消才是最容易被反杀的地方。

5. Pro 到手后确认模型

Pro 到手之后,不要只看别人说能用什么模型。最准确的方法是后面搭好 Kiro Proxy 之后请求模型列表:

1
2
curl https://kiroproxy.example.com/v1/models \
-H "Authorization: Bearer sk-********"

能不能用到 Opus 4.7、Sonnet、Haiku 或其他高级模型,以你账号实际返回的模型列表为准。

二、为什么还要再搭一层 Proxy(而且要搭在云端)

只用 Kiro IDE 的话其实到这里就完事了,但我是想把这份 Pro 额度塞进 Claude Code 里跑代码的,Kiro 那边的接口和 Claude Code 用的对不上,必须有个东西在中间翻译。

Kiro Gateway 就是干这事的,开源的,OpenAI 风格的 /v1/chat/completions 和 Anthropic 风格的 /v1/messages 都兼容,所以 Cherry Studio、ChatBox、Claude Code 这一票客户端都能用。

按理说 docker run 一下扔本地也能用,我一开始也是这么干的,跑了两天就嫌烦:每次开机得手动起容器、合上盖子睡一觉醒来还得再起一次、笔记本断网换 WiFi 链路一抖 Claude Code 就抽风、台式机和笔记本两头来回切又得各自维护一份。索性丢服务器上一了百了,本地配一次 Base URL 之后就再也不用管它。

没有云服务器、不想长期续费的,家里 NAS、软路由、闲置工控机其实都能顶。我这台云服务器到期之后估计就得丢回家那台 J1900 软路由上接着压榨,反正它本来就 7×24 在那儿吃灰。公网入口有 IPv4 走 DDNS,没有就 Cloudflare Tunnel / frp / Tailscale Funnel,反正把后面 nginx 那一层换成隧道入口就行,里面 Docker 那套不动。

三、整体架构

一张图:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
   你的电脑                                 你的服务器
┌──────────────┐ HTTPS ┌──────────────────────────────────────┐
│ │ ────────▶ │ │
│ Claude Code │ │ nginx │
│ │ │ │ │ │
│ ▼ │ │ ▼ 127.0.0.1:39287 │
│ CC Switch │ │ ┌────────────────────────────┐ │
│ (切到 Proxy) │ │ │ Docker 容器 │ │
└──────────────┘ │ │ ┌──────────────────────┐ │ │
│ │ │ Kiro Gateway │ │ │
│ │ │ /v1/messages 翻译 │ │ │
│ │ └──────────┬───────────┘ │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌──────────────────────┐ │ │
│ │ │ sing-box 出口代理 │──┼─────┼─▶ Kiro 服务
│ │ │ (美国节点) │ │ │
│ │ └──────────────────────┘ │ │
│ └────────────────────────────┘ │
└──────────────────────────────────────┘

本地敲 claude,请求被 CC Switch 路由到我的域名,服务器 nginx 收下后丢给容器里的 Kiro Gateway,Gateway 把它改写成 Kiro 协议,再经 sing-box 走美国出口打到 Kiro,结果原路返回。

容器里就两个东西,Kiro Gateway 接客户端的请求,sing-box 管出口节点。容器启动会拉一次订阅,之后每 3 天再拉一次。Gateway 端口我只绑 127.0.0.1,外网压根摸不到,必须从 nginx 那一层进:

1
2
ports:
- "127.0.0.1:39287:8000"

端口随便挑个高位的,别用 8080。

四、把 Kiro 的登录态搬到服务器上

容器跑起来还差最关键的一样东西 —— Kiro 账号的登录凭证。

本机的 Kiro IDE 登录之后会写一个 AWS SSO 风格的 token,Gateway 启动的时候直接读这个文件就能复用,不用再走一遍登录。文件路径在 macOS / Linux 都一样:

1
~/.aws/sso/cache/kiro-auth-token.json

scp 一下扔到服务器:

1
2
3
4
scp ~/.aws/sso/cache/kiro-auth-token.json \
user@your-server:/home/user/kiro-gateway-proxy/secrets/

chmod 600 /home/user/kiro-gateway-proxy/secrets/kiro-auth-token.json

容器里通过环境变量告诉 Gateway 去哪读:

1
2
environment:
KIRO_CREDS_FILE: /app/secrets/kiro-auth-token.json

⚠️ 这个 token 文件 = 你的 Kiro 账号。别进 Git,别截图发群,别丢公开网盘,漏了就是别人拿你的 Pro 在跑。

五、容器内的代理:sing-box

国内直连 Kiro 八成不通,容器里得带个代理。我用的是 sing-box,理由很简单 —— 配置不复杂、机场订阅链接直接喂进去就行。

🇺🇸 AI 流量请固定走美区。 Kiro、Claude、ChatGPT、Gemini 这一堆 AI 服务对 IP 风控都挺凶,你今天日本明天新加坡后天美国地跳,被风控、限速甚至直接封号的概率是肉眼可见上升的。选好美区落地就别再折腾,浏览器、本地客户端、容器出口尽量都走同一个出口。

我自己用的是这份圈 X 规则,把 Claude、Kiro、OpenAI、Gemini、Perplexity 全部分流到了美区策略组,开箱即用:

👉 GnaixEuy/quantumultx-config · filter/ai-all-in-one.list

不用圈 X 也没事,下面的 raw 链接 sing-box / mihomo / clash 直接 import 当规则集就能用。

容器启动的逻辑大概是:拉机场订阅 → 按规则把 AI 流量锁到美国节点 → 起 sing-box → Gateway 的所有出站请求都从这里出。

.env 里配这几个:

1
2
3
4
5
6
PROXY_API_KEY=sk-********
SUBSCRIPTION_URL=https://example.com/sub?token=********
AI_RULE_URL=https://raw.githubusercontent.com/GnaixEuy/quantumultx-config/main/filter/ai-all-in-one.list
SUBSCRIPTION_UPDATE_INTERVAL_SECONDS=259200
KIRO_REGION=us-east-1
LOG_LEVEL=INFO

PROXY_API_KEY 是自己定的,等下 Claude Code 那边要用,openssl rand -hex 32 生成一个就行;SUBSCRIPTION_URL 是机场订阅;AI_RULE_URL 用我那份就好;259200 是秒数 —— 3 天,到点重新拉一次订阅、重新选节点。

Gateway 这边只要知道代理在哪:

1
VPN_PROXY_URL=http://127.0.0.1:7890

💡 用着突然开始疯狂超时?先看 sing-box 日志,确认它现在挑的是哪个节点。节点质量直接决定 Claude Code 的体感。

六、nginx 反代

nginx 这层就一件事:把公网过来的 HTTPS 请求转到本机容器端口。配置最小化版本:

1
2
3
4
5
6
7
8
9
10
11
location ^~ / {
proxy_pass http://127.0.0.1:39287;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_buffering off;
}

里面有两行别动:proxy_buffering off —— Claude Code 是流式输出的,缓冲一开就成了”半天没动静然后哗一下全出来”;proxy_read_timeout 3600s —— 长连接给够,不然写个稍长的回答就被 nginx 砍掉。

用 1Panel 的注意一下

我服务器上面板用的是 1Panel,这里有个坑:只手写 conf 文件,1Panel 的网站列表里看不到这个站。

1Panel 那个列表不是实时读 conf 的,是查它自己的 SQLite 数据库(/opt/1panel/db/agent.dbwebsiteswebsite_domains 这两张表)。你光在 /opt/1panel/www/conf.d/ 里手写一份 .conf,面板压根不知道这站存在。

最省事的办法 —— 先在面板的”网站 → 反向代理”里点一个站出来,让它把数据库记录、conf 文件名、域名都对上,再去微调里面的内容。配出来大概长这样,前端 /、后端 http://127.0.0.1:39287,状态显示已启用就对了:

1Panel 反向代理配置

直接去改数据库那条路也能走通,但翻车概率大,没必要。

七、跑通验证

到这一步先别急着配 Claude Code,两个 curl 把链路验一下:

1
2
3
4
5
6
# 1. 健康检查
curl https://kiroproxy.example.com/health

# 2. 模型列表
curl https://kiroproxy.example.com/v1/models \
-H "Authorization: Bearer sk-********"

第二个能正常返回模型列表,意味着 Kiro 凭证 → sing-box 节点 → Gateway → nginx → 域名 / HTTPS 这一整条链路全通了。任意一环挂了这两个 curl 都会暴露出来,这一步不通就回去改服务端,硬上 Claude Code 是浪费时间。

顺便提一句,模型列表里能看到什么模型以你账号实际返回的为准,Pro 用户能不能用到 Opus 4.7、Sonnet、Haiku,这里返回什么就是什么,别人能用不等于你也能。

八、最后一步:CC Switch

打开 CC Switch,新建一个 Claude Code Provider:

CC Switch 配置示意

填三个字段就够了:

1
2
3
Name:     Kiro Proxy
Base URL: https://kiroproxy.example.com
API Key: sk-********

这里有个比较容易踩的坑 —— **Base URL 不要加 /v1**。Claude Code 走的是 Anthropic 协议,路径它自己会拼,你写成 https://kiroproxy.example.com/v1,最后实际请求是 /v1/v1/messages,妥妥 404。/v1 是给 OpenAI 兼容的客户端用的,Claude Code 不需要。

不想用 CC Switch 直接用环境变量也行:

1
2
3
export ANTHROPIC_BASE_URL="https://kiroproxy.example.com"
export ANTHROPIC_API_KEY="sk-********"
claude

到这就算搭完了。敲个 claude 进去 /status 看一眼,Anthropic base URL 指着自己的域名、Model 显示 Opus 4.7 的话就大功告成:

Claude Code 跑通效果

九、踩坑速查

支付页一直不是 $0.00。 别点。先确认是不是真新号、活动还在不在、卡能不能正常支付,最终金额不是 0 就是没命中,硬点下去是真扣钱的。

虚拟卡能用吗? 能,但有风险,可能被风控、可能扣费失败、严重的甚至连 Kiro 账号一起异常。能上真实卡就上真实卡。

1Panel 网站列表里看不到我的站。 第六节说过了,要么从面板”反向代理”重新建一个,要么去 agent.db 里看 websites 表 —— 光手写 conf 1Panel 是不认的。

Claude Code 报 401。 99% 是 CC Switch 那边填的 API Key 跟 .env 里的 PROXY_API_KEY 没对上。

Claude Code 报 404。 八成是 Base URL 多写了 /v1,Anthropic 协议路径会自己拼。

请求总超时。 拉 sing-box 日志看选到哪个节点了,AI 流量没命中规则就容易跳到日韩去,体感会差很多。

怎么确认 Pro 还在。https://app.kiro.dev/account/usage,Plan 显示 Pro、下面有用量进度条就还在。

十、最后

这套方案是给自己用的,别公开成无鉴权接口,否则约等于把你的 Kiro Pro 直接送给整个互联网。几个底线守住就行:API Key 用足够长够随机的(openssl rand -hex 32 出来的就够了)、容器端口只绑 127.0.0.1、Kiro 凭证和订阅链接不进 Git、AI 流量固定走美区别在国家间反复跳,剩下的问题就交给时间慢慢调。

最后顺嘴说一句,Kiro Pro 这种活动随时可能变,最终金额还是以官网结账页为准,别看了我这篇就两眼一闭点确认。

参考资料