最近在Ubuntu 20.04上运行CyberPanel升级命令时,眼睁睁看着屏幕上跳出”GnuTLS recv error (-110): The TLS connection was non-properly terminated”的错误提示,然后升级进程戛然而止。
(╯°Д°)╯︵ /(.□ . \)
修了半天终于好了,下面来说说修复过程和方案。
错误原因深度剖析
这个错误通常发生在使用curl
或wget
从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-ip
和 port
替换为你实际的代理服务器地址和端口。
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)”确实令人沮丧,但通过系统性的排查,通常都能解决。
给你的最终建议流程:
- 首先尝试手动下载脚本执行,这是最快最直接的方法。
- 如果不行,再按顺序排查网络、代理和Git配置。
- 如果只是临时升级,可以谨慎地临时关闭SSL验证。
- 如果所有方法都失败,或者你本来就计划重新部署,那么备份数据后全新安装是最终手段。
希望这篇教程能帮你顺利渡过难关,让你的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
没有回复内容