Git克隆Arch Linux内核仓库时遭遇RPC失败:curl 28传输过慢错误的排查与求助
我之前也遇到过一模一样的问题!GitHub大仓库克隆时,偶尔会因为短暂的网络波动触发curl的超时限制,尤其是访问GitHub的链路不稳定时特别容易出现这种情况。
核心解决方案:让Git给curl传递放宽速度限制的参数
直接通过Git配置调整curl的速度检测阈值,这是最直接有效的办法:
# 全局生效(所有Git仓库都会应用这个配置) git config --global http.curlopt.speed-time 60 git config --global http.curlopt.speed-limit 100
speed-time:设置curl允许传输速度低于阈值的最长时间,默认是3秒,改成60秒能给网络波动留足缓冲时间speed-limit:设置触发超时的最低速度门槛,默认是1000字节/秒,改成100字节/秒几乎不会因为短暂慢速被终止
如果只需要针对这个Arch内核仓库生效,去掉--global参数,在克隆前或者进入仓库目录执行即可。
补充优化方案
- 增大Git的POST缓冲区
有时候大文件传输时缓冲区不足也会导致中断,可以同时设置:
git config --global http.postBuffer 524288000
这个配置把POST缓冲区调整为500MB,足够应对大部分大仓库的传输需求。
- 换用SSH协议克隆
HTTPS协议偶尔会有额外的网络限制,换成SSH协议可能更稳定:
git clone --depth 1 git@github.com:archlinux/linux.git
需要提前在GitHub账户的SSH设置里配置好你的SSH公钥。
- 中断后继续克隆
如果还是中途断了,不用从头开始,进入已创建的仓库目录继续拉取:
cd linux git fetch --depth 1
我当时就是靠调整curl的速度限制解决的问题,调整后克隆大仓库再也没因为短暂慢速中断过!
内容的提问来源于stack exchange,提问作者xeruf




