RPC failed; curl 65 OpenSSL SSL_read: OpenSSL/3.1.2错误解决方法

文章目录

git push origin master报错如下

复制代码
Enumerating objects: 1706, done.
Counting objects: 100% (1706/1706), done.
Delta compression using up to 16 threads
Compressing objects: 100% (1563/1563), done.
error: unable to rewind rpc post data - try increasing http.postBuffer
error: RPC failed; curl 65 OpenSSL SSL_read: OpenSSL/3.1.2: error:0A0003FC:SSL routines::sslv3 alert bad record mac, errno 0
send-pack: unexpected disconnect while reading sideband packet
Writing objects: 100% (1660/1660), 172.18 MiB | 5.53 MiB/s, done.
Total 1660 (delta 1056), reused 0 (delta 0), pack-reused 0
fatal: the remote end hung up unexpectedly
Everything up-to-date

这个 git push 报错的主要原因有两个,都与推送的数据量较大(172.18 MiB)有关:

  1. http.postBuffer 配置不足

    Git 默认的 HTTP POST 缓冲区大小通常为 1 MiB 或几 MiB,而你要推送的包体积达到 172 MiB,远超默认值。错误信息 unable to rewind rpc post data - try increasing http.postBuffer 明确提示需要增大该缓冲区。

  2. SSL/TLS 连接异常
    OpenSSL SSL_read: ... sslv3 alert bad record mac 表示在 SSL 传输过程中数据完整性校验失败,可能是由于网络不稳定、代理/防火墙干扰,或者 MTU(最大传输单元)问题导致数据包被截断或损坏。当 http.postBuffer 过小时,Git 可能尝试分块发送,但某些块在 SSL 层出现错误,进而触发 curl 65(CURLE_SEND_FAIL_REWIND,即无法回滚重发数据)。

最终服务器端断开连接(remote end hung up),推送失败。Everything up-to-date 是 Git 在失败后显示的错误状态,实际上并未成功推送。


解决方案

  1. 增大 http.postBuffer (最直接)

    执行以下命令将缓冲区调整为 500 MiB:

    bash 复制代码
    git config http.postBuffer 524288000

    然后重新推送。

  2. 检查网络与 SSL 设置

    • 如果使用代理,尝试关闭或正确配置代理:

      bash 复制代码
      git config --global --unset http.proxy
      git config --global --unset https.proxy
    • 临时禁用 SSL 验证(仅测试,不安全):

      bash 复制代码
      git config http.sslVerify false

      测试成功后应恢复为 true。

  3. 使用 SSH 替代 HTTP(S)

    如果远程仓库支持 SSH,将远程地址改为 SSH 格式(如 git@github.com:user/repo.git),可避免 HTTP 缓冲区及 SSL 相关问题。

  4. 拆分提交

    将大改动拆分为多个较小的提交,分别推送,减少单次传输的数据量。

优先尝试增大 http.postBuffer,这是最常见且有效的解决方法。

相关推荐
李纲明12 小时前
WordPress 全站 HTTPS 后仍显示「不安全」或锁被划掉:先清混合内容,再核证书链与强制跳转
网络协议·安全·https·wordpress·devdiy·混合内容
尹人入圣1 天前
目前热门的IP驱动产业新场景新工具
网络·python·网络协议·tcp/ip
IT古董1 天前
Modbus TCP 详解:工业设备通信协议与 MES 集成实战
网络·网络协议·tcp/ip
小此方1 天前
C++ 工程组件与基础设施(三)详解RPC服务的概念与安装,图片介绍Brpc服务器和客户端的搭建过程
服务器·c++·rpc
tedcloud1231 天前
Docker Compose 部署 Uptime Kuma:配置 HTTPS、QQ 邮箱告警与数据备份
服务器·网络协议·ui·docker·容器·https·开源
嵌入式学习菌1 天前
HTTP/HTTPS、MQTT/MQTTS 区别
网络协议·http·https
2501_915106322 天前
抓包抓到乱码或压缩字节怎么解析,TraceEagle五种查看模式和一键解码
网络协议·计算机网络·网络安全·ios·adb·https·udp
情 九2 天前
MCP 实战 06:把 HTTP 接口接成工具,让 AI 帮你查数据
人工智能·网络协议·http·mcp
Da Da 泓2 天前
五子棋 Web 端测试用例报告
前端·网络·websocket·网络协议·测试用例·项目
万联WANFLOW2 天前
异地组网速度忽快忽慢到底怎么回事?直连与中继的判断方法和处理步骤
运维·网络·网络协议·p2p