Ubuntu 20.04修复CyberPanel升级失败:全面解决GnuTLS recv error (-110)错误 - 万事屋

Ubuntu 20.04修复CyberPanel升级失败:全面解决GnuTLS recv error (-110)错误

 

最近在Ubuntu 20.04上运行CyberPanel升级命令时,眼睁睁看着屏幕上跳出”GnuTLS recv error (-110): The TLS connection was non-properly terminated”的错误提示,然后升级进程戛然而止。

(╯°Д°)╯︵ /(.□ . \)

修了半天终于好了,下面来说说修复过程和方案。

错误原因深度剖析

这个错误通常发生在使用curlwget从GitHub下载CyberPanel升级脚本时。根本原因是TLS连接意外终止,这可能由多种因素引起:

  • 网络连接问题:不稳定的网络是导致TLS连接失败的常见原因。
  • 系统SSL/TLS库问题:Ubuntu默认使用的GnuTLS库有时可能与远程服务器存在兼容性问题。
  • 代理配置干扰:如果服务器 behind a proxy(位于代理后面),而代理配置不正确,就会干扰TLS握手。
  • 服务器资源不足:磁盘空间不足或内存耗尽也可能导致连接意外中断。
  • GitHub服务瞬时问题:虽然相对罕见,但有时GitHub服务本身的短暂问题也可能导致连接失败。

理解原因后,我们就有了解决问题的方向。下面这张排查路线图,帮你一目了然地看清解决路径:

 flowchart TD A[遭遇GnuTLS recv error (-110)错误] --> B{开始排查} B --> C[基础检查] B --> D[网络与代理调整] B --> E[Git与SSL配置修改] B --> F[终极方案] subgraph C [基础检查] C1[检查网络连接<br>ping github.com] C2[检查系统更新<br>sudo apt update & upgrade] C3[验证资源状态<br>磁盘空间与内存] end subgraph D [网络与代理调整] D1[尝试使用SSH克隆] D2[检查代理设置<br>env | grep -i proxy] D3[更换网络环境<br>或使用热点] end subgraph E [Git与SSL配置修改] E1[临时关闭SSL验证] E2[调整Git缓冲区大小] E3[安装apt-transport-https] end subgraph F [终极方案] F1[手动下载脚本执行] F2[使用完整安装替代升级] end F2 --> G[问题解决]

详细解决方案

下面我们按照排查路线,一步步提供详细的解决方法。

一、基础检查和调整

首先,我们进行一些基础性的检查和操作,这些问题往往是最常见的”罪魁祸首”。

1. 检查网络连接:确保你的服务器能够正常访问互联网,特别是能够解析和连接到 github.com

ping github.com 

如果无法 ping 通,可能是DNS解析问题。尝试更换DNS服务器(如使用 8.8.8.8)。

2. 更新系统和软件包:过期的系统包有时会导致兼容性问题。运行以下命令更新系统:

sudo apt update sudo apt upgrade -y sudo apt install -y git curl wget gnutls-bin openssl # 确保基础工具已安装 

3. 检查资源状态:确保磁盘没有爆满,内存充足。

df -h # 检查磁盘空间 free -m # 检查内存使用情况 

二、修改Git和SSL配置

如果基础检查没问题,我们来调整一些可能导致TLS问题的配置。

1. 安装 apt-transport-https:这个包可以帮助系统更好地通过HTTPS处理传输。

sudo apt install apt-transport-https -y 

2. 临时禁用SSL验证(测试用):有时SSL证书验证会引发问题,可以临时关闭它来测试。

git config --global http.sslverify false git config --global https.sslverify false 

注意:这会降低安全性,仅用于测试。问题解决后,请务必恢复:

git config --global http.sslverify true git config --global https.sslverify true 

3. 调整Git的HTTP缓冲区大小:增大Post缓冲区有时能改善克隆大型仓库时的稳定性。

git config --global http.postBuffer 1048576000 

三、网络与代理问题处理

网络环境,特别是代理,是导致TLS问题的常见原因。

1. 检查代理设置:如果你在公司网络或使用HTTP代理访问互联网,需要确保Git正确配置了代理。

查看当前环境变量:

env | grep -i proxy 

如果输出显示你有代理配置,需要在Git中设置相同的代理:

git config --global http.proxy http://proxy-ip:port git config --global https.proxy https://proxy-ip:port 

请将 proxy-ipport 替换为你实际的代理服务器地址和端口

2. 尝试切换网络:某些网络环境可能会干扰TLS连接。如果可能,尝试更换网络环境(例如使用手机热点)进行测试。

四、手动执行和最终手段

如果上述方法都无效,别灰心,我们还有最终的大招。

1. 手动下载并运行脚本:这是最有效的解决方法之一。直接手动下载脚本,然后运行。

mkdir -p /usr/local/cyberpanel_upgrade cd /usr/local/cyberpanel_upgrade wget -O preUpgrade.sh https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgrade.sh chmod +x preUpgrade.sh sudo ./preUpgrade.sh 

2. 考虑全新安装(最后的选择):如果所有方法都失败了,错误信息最后也提示 Please run full installation instead of upgrade,这意味着你可能需要备份数据后,进行CyberPanel的全新安装,而不是升级。

警告:此操作会覆盖现有设置,务必提前备份所有重要的网站数据、数据库和配置文件

预防措施与最佳实践

解决问题的最好方法是避免问题。

  • 保持系统更新:定期 sudo apt update && sudo apt upgrade
  • 稳定网络:在升级关键服务时,使用稳定可靠的网络连接。
  • 备份为先任何时候在执行升级或重大操作前,创建完整的系统快照或备份。
  • 关注官方动态:关注CyberPanel官方文档或论坛,了解已知问题和更新公告。

总结与最终建议

遇到Ubuntu 20.04上的CyberPanel升级错误”GnuTLS recv error (-110)”确实令人沮丧,但通过系统性的排查,通常都能解决。

给你的最终建议流程

  1. 首先尝试手动下载脚本执行,这是最快最直接的方法。
  2. 如果不行,再按顺序排查网络代理Git配置
  3. 如果只是临时升级,可以谨慎地临时关闭SSL验证
  4. 如果所有方法都失败,或者你本来就计划重新部署,那么备份数据后全新安装是最终手段。

希望这篇教程能帮你顺利渡过难关,让你的CyberPanel焕发新生!

热门关键词CyberPanel升级错误, GnuTLS recv error (-110)修复, Ubuntu 20.04网络配置, 服务器面板维护, TLS连接问题, Linux服务器管理, CyberPanel安装教程, Ubuntu服务器故障排除

文章描述:本文详细解决了在Ubuntu 20.04系统上升级CyberPanel时出现的GnuTLS recv error (-110)错误。提供了从基础检查、配置修改到手动安装的全面解决方案,并分析了错误原因和预防措施,帮助用户顺利完成面板升级。


版权声明:本文由【万事屋】原创发布,转载请注明出处并保留链接:https://www.rei3.com

请登录后发表评论

    没有回复内容

万事屋新帖