首页/安全/漏洞与攻击面速查/内核类补丁的生效与重启核查
补丁与修复管理45 条

内核类补丁的生效与重启核查

内核、glibc、systemd 等底层组件更新后通常需要重启(或至少重启相关服务)才生效;定期核查『待重启』状态,把重启安排进维护窗口。

漏洞与攻击面速查安全更新于 2026-10-13

内核类补丁的生效核查是什么

内核、glibc、systemd 等底层组件更新后,包已安装但运行中的实例仍是旧版本:内核无法原地替换,必须重启(或依赖 Livepatch 类热补丁方案)才真正生效。因此补丁管理必须单独跟踪「待重启」状态,把重启动作排进维护窗口,否则漏洞清单显示已修复而实际暴露窗口一直存在。

基本信息

适用系统RHEL/CentOS/Rocky(dnf)、Ubuntu/Debian(apt)
生效条件运行中的内核无法原地替换,需重启或热补丁
热补丁kpatch / Livepatch 覆盖部分补丁类型,仍需定期规划重启
批量重启分组滚动执行,先确认服务高可用与流量摘除

待重启检查

待重启检查
dnf needs-restarting -r        # RHEL 系:退出码 1 表示需要重启
cat /var/run/reboot-required 2>/dev/null ; cat /var/run/reboot-required.pkgs   # Ubuntu 系
uname -r                        # 当前运行内核
rpm -q kernel | tail -3         # 已安装的内核包(RHEL 系)
ls /boot/vmlinuz-* 2>/dev/null  # 已安装的内核镜像(Debian 系)

典型使用场景

  • 补丁窗口规划:把需要重启的主机单独列为一批,集中安排窗口
  • 合规检查:证明内核类漏洞已实际生效修复,而不只是包已安装
  • 主机安全检查:长时间未重启的主机往往同时存在补丁滞后问题
  • 高可用验证:滚动重启前确认集群与负载均衡能否承受单节点退出
  • 变更复盘:统计「已安装未重启」的存续时长,衡量流程执行度

状态判断

现象含义动作
needs-restarting -r 返回 1有内核或关键库待生效排入重启窗口
reboot-required 文件存在Ubuntu 系需重启查看 reboot-required.pkgs 确认范围
uname -r 与已安装内核不一致运行的是旧内核安排重启并确认引导项
无待重启标记当前已生效纳入常规巡检
需求侧常忽略『重启才算修完』:清单显示已安装,实际运行版本还是旧的,评估暴露时间时必须把这段未重启期算进去。
重启是高影响操作:先在测试或非核心节点验证引导与业务恢复,保留带外管理通道(如 BMC/iLO)以防系统起不来。

易错点

  • 补丁装了半年从未重启,内核漏洞的实际暴露窗口持续存在
  • 只统计「已安装」不统计「已生效」,报表把待重启主机算成已修复
  • 批量重启未分批,一次重启过多节点导致业务容量不足
  • 重启前未验证引导项与带外通道,意外失败时无法远程恢复
  • 依赖热补丁方案后就完全不安排重启,累积的变更在下次重启时集中爆发

数据来源与参考

  • Red Hat 文档(needs-restarting)
  • Ubuntu 文档(reboot-required 与 Livepatch)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌