教程说明

本教程可以对宝塔部分文件功能进行优化处理,如果出错可以使用修复更新面板的命令恢复文件。

去除网站默认文件

1
2
3
sudo sed -i "\|htaccess = self.sitePath+'/\.htaccess'|, \|public.ExecShell('chown -R www:www ' + htaccess)|d" /www/server/panel/class/panelSite.py
sudo sed -i "\|index = self.sitePath+'/index.html'|, \|public.ExecShell('chown -R www:www ' + index)|d" /www/server/panel/class/panelSite.py
sudo sed -i "\|doc404 = self.sitePath+'/404.html'|, \|public.ExecShell('chown -R www:www ' + doc404)|d" /www/server/panel/class/panelSite.py

关闭未绑定域名提示

1
2
sed -i "s/root \/www\/server\/nginx\/html/return 400/" /www/server/panel/class/panelSite.py
sed -i "s/root \/www\/server\/nginx\/html/return 400/" /www/server/panel/vhost/nginx/0.default.conf

关闭安全入口提示

1
sed -i "s/return render_template('autherr.html')/return abort(404)/" /www/server/panel/BTPanel/__init__.py

去除消息推送

1
2
3
#目前还不清楚具体功能猜测广告,删掉也不影响。
sed -i "/p = threading.Thread(target=check_panel_msg)/, /p.start()/d" /www/server/panel/task.py
sed -i '/\"check_panel_msg\":/d' /www/server/panel/task.py

去除文件校验

1
2
3
4
5
#这个功能会每隔10分钟执行一次,用途是获取新面板文件替换本地旧面板文件
sed -i "/p = threading.Thread(target=check_files_panel)/, /p.start()/d" /www/server/panel/task.py
sed -i '/\"check_files_panel\":/d' /www/server/panel/task.py
#删除接口文件防止其他加密文件调用(可能会改为内置)
rm -f /www/server/panel/script/check_files.py

去除云端验证

1
2
3
4
5
sed -i "/p = threading.Thread(target=update_software_list)/, /p.start()/d" /www/server/panel/task.py
sed -i '/\"update_software_list\":/d' /www/server/panel/task.py
sed -i '/self.get_cloud_list_status/d' /www/server/panel/class/panelPlugin.py
sed -i '/PluginLoader.daemon_task()/d' /www/server/panel/task.py
#sed -i '/PluginLoader.daemon_panel()/d' /www/server/panel/task.py

关闭活动推荐与在线客服

1
2
echo "True" > /www/server/panel/data/not_recommend.pl
echo "True" > /www/server/panel/data/not_workorder.pl

关闭首页软件推荐与广告

1
sed -i '/def get_pay_type(self,get):/a \ \ \ \ \ \ \ \ return [];' /www/server/panel/class/ajax.py

关闭拉黑检测与提示

1
2
3
4
5
#每隔10分钟执行一次,用于检测是不是破解版,该命令直接删除链接,使返回为空,输出False
#该接口返回False 与True均不影响面板,返回True后续代码还会对返回的其他字段数据做处理。
#直接返回False类似于无法访问宝塔的接口,因此不会执行后面的一大堆代码。
#锁面板我记得是接口直接返回文本,然后代码输出文本提示锁面板。
sed -i '/self._check_url/d' /www/server/panel/class/panelPlugin.py

关闭面板日志与绑定域名上报

1
2
sed -i "/^logs_analysis()/d" /www/server/panel/script/site_task.py
sed -i "s/run_thread(cloud_check_domain,(domain,))/return/" /www/server/panel/class/public.py

关闭面板强制更新

1
2
3
#宝塔接口返回force = 1的时候会强制更新你的面板 7.7.0版本的用户推荐处理一下
sed -i "/#是否执行升级程序/a \ \ \ \ \ \ \ \ \ \ \ \ updateInfo[\'force\'] = False;" /www/server/panel/class/ajax.py
rm -f /www/server/panel/data/autoUpdate.pl

关闭自动更新软件列表

1
2
3
4
#宝塔调用get_plugin_bin公共函数判断本地列表文件是否过期,这里设置为0时强制输出本地文件
#点击更新软件列表会绕过过期判断,因此并不会影响到手动更新。
sed -i "/plugin_timeout = 86400/d" /www/server/panel/class/public.py
sed -i "/list_body = None/a \ \ \ \ \plugin_timeout = 0;" /www/server/panel/class/public.py

去除计算验证(不推荐安装,会导致一键迁移不成功)

1
2
3
4
5
sed -i '/{% block scripts %} {% endblock %}/a <script src="/static/bt.js"></script>' /www/server/panel/BTPanel/templates/default/layout.html
#7.7.0面板以及一下版本执行这个
wget http://f.cccyun.cc/bt/bt.js -O /www/server/panel/BTPanel/static/bt.js
#7.8.0面板以及以上版本执行这个
wget http://f.cccyun.cc/bt/bt_new.js -O /www/server/panel/BTPanel/static/bt.js

最后重启面板 以及清理浏览器缓存即可生效

1
2
#重启面板命令
/etc/init.d/bt restart

如需要恢复使用以下命令,或面板内修复面板

1
curl https://download.bt.cn/install/update_panel.sh|bash