私有仓库连接超时由系统 Git 控制,非 Composer 配置所致;需通过 git config 设置 http/ssh 超时参数,并确认服务端性能。

私有仓库连接超时,不是 Composer 超时设置没调够,而是它根本没走 HTTP 超时逻辑——Git 克隆阶段由系统 Git 控制,Composer 的 process-timeout 和 http.timeout 完全不生效。
为什么换镜像源对私有仓库无效
镜像源只代理 Packagist 的 metadata 查询(https://mirrors.aliyun.com/composer/),但私有仓库通常声明为 "type": "git" 或 "type": "vcs",Composer 会直接执行 git clone。此时所有超时、重试、认证都交给系统 Git 处理,和 Composer 配置无关。
- 验证方式:运行
composer show vendor/package --all | grep -A5 source,若看到"url": "git@xxx"或"https://gitlab.internal/xxx",就属于此场景 - 典型错误不是
cURL error 28,而是Cloning into 'xxx'... fatal: unable to access 'https://xxx': Failed to connect to xxx port 443 after 75000 ms: Connection refused - 阿里云/腾讯镜像无法加速这类请求——它们不代理任意 Git 地址,强行配置
repo.packagist对私有源无影响
Git 层超时必须由 Git 自身控制
Composer 不暴露 Git 超时参数,得在系统 Git 配置里设。尤其在 CI 环境或企业内网,DNS 解析慢、HTTPS 握手卡顿、SSH 连接阻塞都会导致克隆挂起。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 全局设 HTTPS 连接超时:
git config --global http.postBuffer 524288000(防大包中断) - 强制 HTTPS 连接超时(推荐):
git config --global http.lowSpeedLimit 0和git config --global http.lowSpeedTime 0(禁用低速阈值) - SSH 连接超时:
git config --global core.sshCommand "ssh -o ConnectTimeout=30 -o ServerAliveInterval=30" - 若用 HTTPS + token,确认 token 权限足够,且未触发 GitHub/GitLab 的 rate limit(报错是
403,不是 timeout)
私有仓库 URL 协议选型直接影响超时行为
同一仓库用 git@ 和 https:// 协议,底层走的网络栈、认证链、超时机制完全不同。
-
git@xxx:走 SSH,依赖~/.ssh/config中的ConnectTimeout和ServerAliveInterval,不经过 HTTP 栈 -
https://xxx:走 HTTPS,受git config http.*控制,也受系统 CA 证书、代理环境影响 - CI 中建议统一用 HTTPS + token,避免 SSH 密钥管理复杂;本地开发可保留 SSH,但需确保
ssh -T git@xxx能通 - 不要混用:比如
composer.json写git@xxx,却在 CI 里只配了 HTTPS token,会导致认证失败并假性超时
Composer 配置能做的有限干预
虽然 Git 层超时不能靠 Composer 控,但部分配置可减少触发机会:
- 禁用 Git 深度克隆(跳过历史):
composer config -g github-protocols https(对 GitHub 有效),再配合git config --global clone.defaultRemoteName origin - 关闭不必要的插件干扰:
composer install --no-plugins --no-scripts,排除插件中自定义 Git 调用的副作用 - 强制 zip 下载(如果私有仓库支持):在
composer.json的仓库定义里加"dist": {"url": "https://xxx.zip", "type": "zip"},绕过 Git - 注意:
process-timeout仍需设合理值(如1800),否则 Git 克隆未完成时 Composer 主进程先被 kill,报错变成模糊的The process timed out
最常被忽略的一点:私有 Git 服务器本身响应慢(比如 GitLab CE 装在低配 VM 上、NFS 挂载慢、反向代理 TLS 终止耗时高),这时调任何客户端超时都只是掩耳盗铃——得查服务端日志,而不是反复改 composer config。

















