前言

目前使用 Claude 模型的方式主要有两类:一类是通过官方渠道直接调用,另一类是通过第三方中转服务接入。官方渠道相对稳定,但免费额度和可用量通常比较有限,长期使用成本也比较高;而中转服务虽然使用门槛更低,但背后的实现方式和稳定性也参差不齐。

最近了解到,不少 Claude 中转站会采用基于 Kiro 的反向代理方案,将请求转发到对应的模型接口。出于学习和技术实践的目的,我也尝试搭建并配置了一套 Kiro Gateway 接入方案。

这篇文章主要记录整个折腾过程,包括环境准备、服务启动、后台守护、端口转发,以及接入 Claude Code / CCSwitch 时遇到的一些问题,方便以后复现和排查。

环境搭建

本次配置需要如下环境设置(我使用的macbook,win版本按照如下操作可能需要改一些配置)

  • python运行环境
  • uv,一个轻量级的 Python 包管理和虚拟环境工具
  • git,下载Kiro Gateway代码
  • Supervisor,用于macos和linux后台守护服务
  • Claude Code 或 CCSwitch,用于客户端接入
  • 还需要提前下载好kiro IDE,并登录好pro账号(可以通过闲鱼购买,闲鱼商家大部分通过虚拟信用卡试用一个月,来获得kiro pro账户,也可以自己尝试)
    kiro IDE下载

Kiro Gateway项目配置

基础环境准备完成后,就可以开始配置 Kiro Gateway 项目了。这里主要包括拉取项目代码、创建 Python 虚拟环境、安装依赖以及配置环境变量。

拉取项目代码

git clone https://github.com/Jwadow/kiro-gateway.git && cd kiro-gateway

创建虚拟环境并激活

uv venv && source .venv/bin/activate && uv pip install -r requirements.txt

编辑配置

cp .env.example .env && vim .env
...
PROXY_API_KEY="<配置你自己的apikey,用于Claude Code验证>"

# ===========================================
# OPTION 1: Kiro IDE credentials (JSON file)
# ===========================================

# Path to JSON credentials file from Kiro IDE
KIRO_CREDS_FILE="~/.aws/sso/cache/kiro-auth-token.json" # IDE授权文件路径
...

启动supervisor

Supervisor 用于管理后台进程。由于 Kiro Gateway 需要长期运行,如果直接在终端中启动,一旦关闭终端,服务就会停止。因此这里使用 Supervisor 将其作为后台服务进行管理。

# 启动supervisor,每次开机都会启动
brew services start supervisor

# 查看后台服务启动的程序
brew services list

配置 Kiro Gateway 后台服务

前面如果直接在终端里运行 Kiro Gateway,一旦关闭终端,服务就会停止。为了让它能够长期在后台运行,这里使用 Supervisor 来管理 Kiro Gateway 进程。

首先进入 Supervisor 的配置目录:

mkdir -p /opt/homebrew/etc/supervisor.d/ && cd /opt/homebrew/etc/supervisor.d/

创建一个新的配置文件

vim kiro-gateway.ini

在配置文件中填写配置

[program:kiro-gateway]
directory=<kiro-gateway项目路径>
command=<kiro-gateway项目路径>/.venv/bin/python main.py --port 8989

autostart=true
autorestart=true
startsecs=3
stopasgroup=true
killasgroup=true

stdout_logfile=/tmp/kiro-gateway.out.log
stderr_logfile=/tmp/kiro-gateway.err.log
stdout_logfile_maxbytes=50MB
stderr_logfile_maxbytes=50MB
stdout_logfile_backups=5
stderr_logfile_backups=5

user=<user>
environment=PYTHONUNBUFFERED="1"

完成 kiro-gateway.ini 配置后,需要让 Supervisor 重新读取配置并启动服务

supervisorctl reread && supervisorctl update && tail -f /tmp/kiro-gateway.out.log

查看Kiro Gateway是否启动

正常启动应该是running

supervisorctl status

重启Kiro Gateway

运行supervisorctl status如果报fatal
这时候需要打开IDE,并重新启动

supervisorctl restart kiro-gateway

CCSwitch或者Claude Code连接代理的API

我们配置里设置了API-Key和相应的端口,这两个是我们之前设置好的,按要求填写就行
CCSwitch
测试成功
Xnip2026-05-21_13-29-33.jpg

SSH转发服务

Kiro Gateway 默认运行在本地端口,例如:

127.0.0.1:8989

但我常用远程服务器写代码,如果希望远程服务器也能访问本地运行的 Kiro Gateway,可以使用 SSH 反向端口转发:

ssh -N -R 127.0.0.1:8989:127.0.0.1:8989 root@xx.xx.xx.xx

这条命令的作用是:将本地 Mac 上的 127.0.0.1:8989 映射到远程服务器的 127.0.0.1:8989。

也就是说,命令执行成功后,在远程服务器上访问:

http://127.0.0.1:8989

实际请求会被转发到本地 Mac 上运行的 Kiro Gateway 服务。

其中:

  • -N:表示只建立 SSH 隧道,不执行远程命令;
  • -R:表示反向端口转发;
  • 第一个 127.0.0.1:8989:远程服务器监听的地址和端口;
  • 第二个 127.0.0.1:8989:本地 Mac 上的目标服务地址和端口;
  • root@xx.xx.xx.xx:远程服务器的登录用户和地址。

参考文献

Kiro Gateway 搭建教程
另外,可以试试一个star比较多的kiro account manage项目:Kiro account manager