宝塔报“系统漏洞”实为内核或基础包过旧,需用系统原生命令升级并重启生效,不可仅升级面板;生产环境应使用ELRepo(CentOS)或UKUU(Ubuntu)等可靠方案,避免误执行全量升级导致服务异常。

宝塔报“系统漏洞”其实是内核或基础包过旧
宝塔面板本身不扫描系统漏洞,它只是检测到当前内核版本太老(比如 CentOS 7 默认的 3.10.0-xxx),或关键组件如 openssl、glibc、systemd 存在已知 CVE 编号的高危问题时,会在首页或安全模块弹出提示。这类提示不是面板 bug,而是底层 OS 需要补丁——你不能只点面板右上角“升级”就解决。
- 面板升级(
bt 16或后台点更新)只更新宝塔程序本身,不影响内核和系统库 - 真正修复漏洞,必须走发行版原生命令:CentOS/RHEL 用
yum update -y或dnf upgrade -y;Ubuntu/Debian 用apt update && apt upgrade -y - 执行后若看到内核包(如
kernel-3.10.0-1160.118.1.el7)被升级,说明补丁已拉取,但**不会自动生效**——必须重启服务器
内核更新后不重启 = 白装
很多用户执行完 yum update 就以为完事了,结果漏洞扫描工具依然报 CVE-2025-1234,原因就是新内核没启动。Linux 内核是运行时加载的,旧进程仍在老内核上跑,所有提权类漏洞照常可利用。
- 确认是否装了新内核:
rpm -q kernel(CentOS)或dpkg -l | grep linux-image(Ubuntu) - 查看默认启动项:
grub2-editenv list(CentOS 7+)或awk -F\' '/menuentry / {print $2}' /boot/grub/grub.cfg | head -n3(Ubuntu) - 如果新内核没设为默认,用
grub2-set-default 0(CentOS)或sudo update-grub && sudo reboot(Ubuntu)强制切换 - 重启后务必验证:
uname -r输出的版本号必须和刚装的内核一致
别信“一键升级内核”脚本,ELRepo 和 UKUU 才靠谱
网上一堆“三行命令升级 6.x 内核”的脚本,多数硬编译、不配 GRUB、不保留回退选项,一跑完服务器直接起不来。生产环境必须用经过验证的仓库方案。
- CentOS/RHEL 系统一律走
elrepo-kernel:先装源yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm,再装kernel-lt(长期支持版),比主线版稳得多 - Ubuntu 推荐
ukuu:它会自动处理initramfs和GRUB配置,装完跑sudo ukuu --install v5.15.0-100就行,不用碰update-initramfs这种易错命令 - 手动编译内核?除非你明确需要某个未合入主线的 patch,否则纯属给自己加负担——
make install后漏掉update-grub或dracut --force,90% 概率进不了系统
安全补丁 ≠ 全量升级,慎用 dist-upgrade 或 do-release-upgrade
有人看到漏洞提示,顺手执行 apt dist-upgrade 甚至 do-release-upgrade,结果把 Ubuntu 22.04 升到 24.04,宝塔面板直接白屏。这不是补丁,这是换系统。
-
apt upgrade只升已有包的安全/稳定更新,不新增/删除包,对宝塔兼容性最友好 -
apt dist-upgrade可能因依赖变化移除php-fpm或改写/etc/php/*/fpm/pool.d/,导致网站 502 -
do-release-upgrade是发行版大版本跃迁,宝塔官方仅测试过 LTS 到 LTS(如 20.04→22.04),跨代升级(22.04→24.04)不在支持范围内 - 不确定时,先备份:
tar -czf /backup/bt-before-patch-$(date +%s).tar.gz /www/server/panel
最常被忽略的一点:补丁安装后,得去宝塔「安全」页面检查防火墙规则是否还在。有些 apt upgrade 会重置 ufw 状态,或者把 iptables 的自定义链清空——面板开着,但 SSH 和数据库端口意外暴露了。

















