如何在Ubuntu系统中开启安全自动升级?

系统要长久稳定,安全运行,就会面对经常的系统升级,打补丁等。服务器运维人员必懂的升级更新配置方法。

以下是一套直接复制就能用、官方推荐、只更安全补丁、不瞎升级软件的完整步骤(Ubuntu 22.04/20.04 通用)。


一、安装并开启自动安全更新(核心)

# 1. 更新源并安装工具
sudo apt update
sudo apt install -y unattended-upgrades

# 2. 交互式启用(选 Yes)
sudo dpkg-reconfigure --priority=low unattended-upgrades
  • 弹出界面:选 Yes → 回车。
  • 作用:自动创建 /etc/apt/apt.conf.d/20auto-upgrades,开启每日安全更新

二、确认自动更新频率(可直接用)

cat /etc/apt/apt.conf.d/20auto-upgrades

默认内容(不用改):

APT::Periodic::Update-Package-Lists "1";    # 每天拉一次补丁列表
APT::Periodic::Unattended-Upgrade "1";       # 每天自动装安全补丁

如需每周清理旧包(推荐):

sudo vim /etc/apt/apt.conf.d/20auto-upgrades

末尾加一行:

APT::Periodic::AutocleanInterval "7";

保存退出(Ctrl+O→回车→Ctrl+X)。


三、严格限定:只更安全补丁,不更普通软件(重要)

编辑主配置:

sudo vim /etc/apt/apt.conf.d/50unattended-upgrades

找到 Allowed-Origins,确保只留 security 行,其他全部注释(加 //):

Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}-security";
//      "${distro_id}:${distro_codename}-updates";
//      "${distro_id}:${distro_codename}-proposed";
//      "${distro_id}:${distro_codename}-backports";
};
  • 只装安全补丁(高危漏洞、内核安全更新)
  • 不升级普通软件(如 Nginx、PHP、WordPress 相关包),避免业务挂掉。

可选(推荐开启):

Unattended-Upgrade::Remove-Unused-Dependencies "true";  # 自动清理无用依赖

保存退出。


四、控制自动重启(服务器建议关闭)

默认不会自动重启(安全)。如需更新内核后凌晨 2 点自动重启(个人测试机可用):

sudo vim /etc/apt/apt.conf.d/50unattended-upgrades

取消注释并改为:

Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "02:00";

服务器建议保持 false,避免业务中断。


五、测试与验证(确保生效)

1. 模拟运行(不真安装)

sudo unattended-upgrade --dry-run --debug

输出看到 All upgrades installed只处理 security 源 → 配置正确。

2. 查看服务状态

sudo systemctl status unattended-upgrades

显示 active (running) → 正常。

3. 看历史日志(排查问题)

tail -f /var/log/unattended-upgrades/unattended-upgrades.log

六、一键复制(直接粘贴执行)

sudo apt update
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
echo 'APT::Periodic::AutocleanInterval "7";' | sudo tee -a /etc/apt/apt.conf.d/20auto-upgrades
sudo sed -i '/updates"/s/^/\/\//' /etc/apt/apt.conf.d/50unattended-upgrades
sudo sed -i '/proposed"/s/^/\/\//' /etc/apt/apt.conf.d/50unattended-upgrades
sudo sed -i '/backports"/s/^/\/\//' /etc/apt/apt.conf.d/50unattended-upgrades

总结

做完以上:

  • 系统每天自动打安全补丁(防漏洞)
  • 不升级业务软件(Nginx/PHP/MySQL 不动)
  • ✅ 自动清理旧包,不占磁盘
  • ✅ 可查日志、可测试、可控重启

将本页面加入收藏夹

      如果觉得本文对您有用。建议按下 Ctrl+D (Windows) 或 Cmd+D (Mac) 收藏本页,以便在下次需要时快速查阅解决方案。

发表评论

粤ICP备10052831号 | © 2026 58Linux 技术笔记. All Rights Reserved. | 联系我们 | 关于本站
本站内容开放共享,仅供学习交流 | 专注 Ubuntu & Linux 实战教程
Built with GeneratePress