Toran Proxy 已停更且不兼容 Composer 2.2+,因不透传 signature 字段、不支持 p2/ 路径导致静默失败或 404;推荐替代方案 composer-proxy 或 Satis/Private Packagist。

Toran Proxy 已停更,不能用于 Composer 2.2+ 环境,尤其在 2026 年当前(Composer 2.5+)下,它根本无法正常工作。这不是配置问题,而是协议层不兼容——它既不透传 signature 字段,也不支持 p2/ 元数据路径,所有请求最终都会静默 fallback 或直接 404。
如果你正卡在 composer install -v 显示 GET <a href="https://www.php.cn/link/91c029af27d1e60442759b7d1c0671d1">https://www.php.cn/link/91c029af27d1e60442759b7d1c0671d1</a> 404,或 composer diagnose 提示 signature verification disabled,说明 Toran 已彻底失效,强行调优没有意义。
Toran Proxy 为什么一配就失效
- 官方代码库已于 2021 年底归档,Docker 镜像不再更新,GitHub 上无任何维护痕迹
- Composer 2.2 起强制校验
packages.json中的signature字段,而Toran Proxy不解析、不转发该字段,导致 Composer 自动降级为无签名模式(安全链断裂) - 它无法生成合法的
providers-api响应,composer install会跳过私有源直连packagist.org,且不报错——你根本不知道它没生效 - 同步私有包依赖 GitHub/GitLab API,但所用 OAuth scopes 已被平台废弃,token 失效率超 80%
替代 Toran Proxy 的轻量方案:composer-proxy
这是目前唯一能平替 Toran 行为、又完全兼容 Composer 2.5+ 的开源代理:
安全更新和维护 CLI Proxy API(CPA)部署与配置。用于 CPA 镜像升级、配置变更、认证目录兼容修复、上线验证与回滚。适用于用户提到“CPA 更新/升级/配置改了/容器重建/回滚”等场景。
- Go 编写,无数据库,纯内存缓存 + 文件落地,启动即用
- 原样透传
signature字段,composer diagnose全项通过 - 支持
p2/协议路径,能正确响应/p2/vendor/package.json类请求 - 启动命令极简:
composer-proxy -upstream <a href="https://www.php.cn/link/ec811d0d775adc62776ba80fadd4ed19">https://www.php.cn/link/ec811d0d775adc62776ba80fadd4ed19</a> -listen :8080
- 配置全局源:
composer config -g repo.packagist composer <a href="https://www.php.cn/link/d6686469a29701048799005b5ebb1529">https://www.php.cn/link/d6686469a29701048799005b5ebb1529</a> - 若需 HTTPS,前端套 Nginx 即可,证书由反向代理处理,
composer-proxy本身无需 TLS
私有仓库真正可行的部署路径
别再折腾 Toran Proxy,按实际需求选:
-
中小团队 / 内网隔离环境 → 用
Satis:静态生成,Nginx 托管,php bin/satis build satis.json dist即可发布,URL 必须以/结尾,Content-Type 必须是application/json -
中大型团队 / 需权限控制与审计 → 直接上
Private Packagist(支持私有部署),它原生兼容所有 Composer v2 协议,含 SAML、Webhook、细粒度包权限 -
只想加速公网源 + 临时缓存 →
composer-proxy是唯一推荐,它不改行为、不增风险、不破签名
Toran Proxy 的“调优”本质是给一台已报废的发动机换机油——引擎早就不转了。真正要做的,是换掉整套动力系统。


















