宝塔面板一键优化补丁
介绍
自用的宝塔面板一键优化补丁,主要有以下优化项目:
去除宝塔面板强制绑定账号
去除各种删除操作时的计算题与延时等待
去除创建网站自动创建的垃圾文件(index.html、404.html、.htaccess)
关闭未绑定域名提示页面,防止有人访问未绑定域名直接看出来是用的宝塔面板
关闭活动推荐与在线客服
去除自动校验文件与上报信息定时任务
去除面板日志与网站绑定域名上报
使用说明
适用于宝塔 Linux 面板 7.7 版本的命令 :
国外GitHub源:
wget -O optimize.sh https://raw.githubusercontent.com/it-iou/bt_clean/master/optimize.sh && bash optimize.sh
国内Gitee源:
wget -O optimize.sh https://gitee.com/itiou/bt_clean/raw/master/optimize.sh && bash optimize.sh
一键升(降)级到宝塔7.7版本命令:
国外GitHub源:
curl https://raw.githubusercontent.com/it-iou/bt_clean/master/update6.sh|bash
国内Gitee源:
curl https://gitee.com/itiou/bt_clean/raw/master/update6.sh|bash
适用于宝塔 Linux 面板 >=7.9 版本的命令:
国外GitHub源:
wget -O optimize.sh https://raw.githubusercontent.com/it-iou/bt_clean/master/optimize_new.sh && bash optimize.sh
国内Gitee源:
wget -O optimize.sh https://gitee.com/itiou/bt_clean/raw/master/optimize_new.sh && bash optimize.sh
适用于宝塔国际版 aaPanel 的命令:
国外GitHub源:
wget -O optimize.sh https://raw.githubusercontent.com/it-iou/bt_clean/master/optimize_aapanel.sh && bash optimize.sh
国内Gitee源:
wget -O optimize.sh https://gitee.com/itiou/bt_clean/raw/master/optimize_aapanel.sh && bash optimize.sh
适用于宝塔 Windows 面板的命令:
国外GitHub源:
wget -O optimize.sh https://raw.githubusercontent.com/it-iou/bt_clean/master/optimize.py -O C:/optimize.py && "C:\Program Files\python\python.exe" C:/optimize.py
国内Gitee源:
wget https://gitee.com/itiou/bt_clean/raw/master/optimize.py -O C:/optimize.py && "C:\Program Files\python\python.exe" C:/optimize.py
宝塔常见问题修复方案
1. CentOS7.9 环境下无法使用宝塔 SSH 终端
问题复现:
打开宝塔 SSH 终端显示 连接丢失,正在尝试重新连接!
查看错误日志显示:
...
werkzeug.routing.exceptions.WebsocketMismatch: 400 Bad Request:
The browser (or proxy) sent a request that this server could not understand.
...
问题原理:
版本兼容性问题: 较新版本的 Flask 和 Werkzeug 改变了 WebSocket 路由处理机制。
由于路由机制改变,WebSocket 请求在默认情况下被误识别为普通 HTTP 请求。
路由标记问题: WebSocket 端点需要通过
websocket=True
标记来显式区分。缺少必要标记导致 WebSocket 请求处理错误。
解决方案:
修改 /www/server/panel/class
下面的 flask_sockets.py
文件
将源代码第78行
self.url_map.add(Rule(rule, endpoint=f))
修改为:
self.url_map.add(Rule(rule, endpoint=f, websocket=True))
一键脚本
# 备份ask_sockets.py文件
cp /www/server/panel/class/flask_sockets.py /www/server/panel/class/flask_sockets.py.bak
# 修改文件重启面板
sed -i 's/self.url_map.add(Rule(rule, endpoint=f))/self.url_map.add(Rule(rule, endpoint=f, websocket=True))/g' /www/server/panel/class/flask_sockets.py && bt 1
2. 宝塔面板下载文件时出错
问题复现:
宝塔面板下载文件显示错误:
出错了,面板运行时发生错误!
TypeError: send_file() got an unexpected keyword argument 'add_etags'
问题原理:
参数兼容性问题:在 Flask 2.x 版本中,
send_file()
函数的参数更新,add_etags
参数不再使用。与较新 Flask 版本不兼容的代码中仍然使用了这个参数,导致函数调用失败。
解决方案:
降级 Flask 版本:
# 查看当前版本
btpip show flask
# 安装正确的版本(例如Flask 2.1.2)
btpip install -U Flask==2.1.2 && bt 1
3. 宝塔面板申请 SSL 证书时报错
问题复现:
申请 SSL 证书时出现 Invalid version. The only valid version for is 0.
问题原理:
X不匹配:X仅支持版本0,由于错误地设置了不适用的版本号,导致申请失败。
在 SSL/TLS 标准中,X509v1 证书请求是唯一支持的版本有无效甚至不支持的额外版本号被设置。
解决方案:
修改 /www/server/panel/class
中的 acme_v2.py
文件
找到源代码第973行,将
X509Req.set_version(2)
修改为:
X509Req.set_version(0)
一键脚本
# 备份当前的acme_v2.py文件
cp /www/server/panel/class/acme_v2.py /www/server/panel/class/acme_v2.py.bak
# 修改文件及重启面板
sed -i 's/X509Req.set_version(2)/X509Req.set_version(0)/g' /www/server/panel/class/acme_v2.py && bt 1
评论已关闭