跳到主内容

Ubuntu VPS 自动安全更新教程:unattended-upgrades 配置与排错

介绍如何在 Ubuntu VPS 上启用、检查和排查 unattended-upgrades,涵盖安全更新来源、systemd 定时器、日志、模拟运行、自动重启风险和常用配置文件。

GSProber · 主机测评编辑3 阅读
介绍如何在 Ubuntu VPS 上启用、检查和排查 unattended-upgrades,涵盖安全更新来源、sys…

Ubuntu VPS 自动安全更新教程

长期运行的 VPS 如果只在想起来时手动执行软件更新,很容易错过已经发布的安全修复。Ubuntu Server 提供 unattended-upgrades,可以按照 APT 的来源规则定期安装安全更新,并把执行过程写入日志。它适合个人网站、反向代理、监控节点和其他需要持续在线的普通服务器,但仍然需要管理员检查运行结果、重启需求和应用兼容性。

本文只讨论 Ubuntu 与 Debian 系常见的 APT 更新机制,不把系统大版本升级交给无人值守流程。开始前应先确认自己拥有 root 或 sudo 权限,并为重要配置、数据库和站点数据准备可恢复备份。如果你刚开始管理服务器,可以先阅读 Linux 运维入门教程,了解软件包、服务和日志的基本关系。

unattended-upgrades 是什么

Ubuntu 官方文档说明,unattended-upgrades 用于在没有交互操作的情况下应用安全更新。Ubuntu Server 的常见安装通常已经包含并启用它,但云服务商制作的精简镜像可能删除软件包或改变默认设置。因此,不要仅凭系统版本判断功能是否生效,应在自己的 VPS 上检查软件包、APT 配置和 systemd 定时器。

它与每天随意运行 apt full-upgrade 并不相同。工具会读取允许的软件源,只处理符合规则的更新。默认配置通常以官方安全仓库为主;新增 PPA 或第三方仓库之后,并不会自动意味着该仓库的软件也会被无人值守安装。这个边界可以减少第三方包在无人监督时被意外升级的概率。

安装并启用自动安全更新

先刷新软件包索引并安装组件:

Bash
sudo apt update
sudo apt install unattended-upgrades

然后检查控制文件 /etc/apt/apt.conf.d/20auto-upgrades。每日刷新索引并执行无人值守更新的常见配置如下:

Plain Text
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

数值表示间隔天数,1 表示每天,0 表示禁用。Ubuntu 使用 apt-daily.timerapt-daily-upgrade.timer 触发相关服务,并可能加入随机等待时间,避免大量机器同时访问软件源。因此,定时器显示的触发时刻与日志里的实际执行时刻不一定完全一致。

可以用下面的命令查看状态:

Bash
systemctl status apt-daily.timer apt-daily-upgrade.timer
systemctl list-timers 'apt-daily*'

如果服务器关机错过计划时间,带有持久化属性的 systemd 定时器可能在下次开机后补跑任务。此时 APT 锁会暂时阻止其他安装操作,这是正常的互斥保护,不应通过删除锁文件强行解决。

限定允许的软件源

核心规则位于 /etc/apt/apt.conf.d/50unattended-upgrades。其中 Allowed-Origins 或相应的来源模式决定哪些仓库可以自动安装。对普通生产 VPS,优先保留发行版官方安全来源;是否同时启用普通更新仓库,应根据应用兼容性、维护窗口和回滚能力决定。

第三方仓库、数据库、容器运行时或控制面板可能有自己的升级要求。不要因为已经加入 APT 软件源,就默认把它纳入无人值守范围。对于已知需要人工维护的包,可以使用 Package-Blacklist 设置排除规则,但排除基础库可能连带阻止依赖它的其他安全更新,所以修改后必须进行模拟检查。

自动重启应该怎样设置

部分内核和基础组件更新需要重启后才能完全生效。unattended-upgrades 支持自动重启,但 Ubuntu 默认不会自动重启。对于只有单台服务器的网站,直接开启自动重启可能造成业务中断,甚至在启动配置有问题时无法自动恢复。

更稳妥的方式是保留:

Plain Text
Unattended-Upgrade::Automatic-Reboot "false";

然后监控 /var/run/reboot-required,在维护窗口中手动重启。如果业务已经具备多节点冗余、健康检查和流量切换,再评估定时自动重启。迁移或重大维护之前,也可以参考 Linux VPS 迁移教程,先确认备份与恢复路径。

先模拟再正式运行

修改配置后,不必等待下一次计划任务。官方手册提供 --dry-run 选项用于模拟,配合详细输出可以查看候选软件包和允许的来源:

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

模拟不会安装软件包,适合检查来源规则和排除项。确认输出符合预期后,可以等待 systemd 定时器执行。生产服务器不建议在不了解候选更新的情况下直接把调试命令改成正式执行。

运行日志通常位于:

Plain Text
/var/log/unattended-upgrades/unattended-upgrades.log
/var/log/unattended-upgrades/unattended-upgrades-dpkg.log
/var/log/apt/history.log

排查时先看任务是否触发,再看是否发现候选更新,最后检查 dpkg 是否因为配置文件问题而停止。还可以使用 journalctl -u apt-daily-upgrade.service 查看 systemd 记录。

推荐的日常检查清单

每周至少检查一次定时器、更新日志和重启标记;确认安全来源仍然有效;关注磁盘空间,避免 /boot 或根分区过满;对数据库、Web 服务和控制面板保留升级后的应用检查;重要业务先在相似环境验证关键包更新。自动化的目标是缩短安全修复空窗,而不是取消运维责任。

如果你还需要优化 Linux 网络栈,可以继续阅读 Linux 开启 BBR 教程。先把安全更新、备份和恢复流程建立起来,再叠加性能配置,通常更容易定位后续问题。

总结

Ubuntu VPS 自动安全更新适合处理来源明确、风险可控的日常安全补丁。正确做法是确认软件包和定时器、限制允许来源、保留日志、先做模拟运行,并谨慎处理自动重启。对单机生产业务,建议让安全更新自动安装,但把重启和大版本升级留在人工维护窗口。

所属专题:建站VPS专题
教程GsDesk 是一款基于 Cloudflare Workers 与 VPS 自托管 的开源远程桌面项目,支持 WebR…

Cloudflare Workers 免费搭建开源远程桌面完整教程:无需 VPS,支持 WebRTC P2P、D1、KV、R2、浏览器远程控制、Windows 客户端和文件传输

GsDesk 是一款基于 Cloudflare Workers 与 VPS 自托管 的开源远程桌面项目,支持 WebRTC P2P 直连,服务端仅负责 API、身份认证和 WebSocket 信令,不中转桌面视频流,大幅降低服务器带宽成本。项目支持 Cloudflare 免费套餐 部署,也可以使用 Docker 在 VPS 上自托管,内置 Windows 客户端、浏览器控制端、手机远程控制,支持 8 位设备 ID、OTP 一次性密码、永久密码、Ed25519 设备认证、JWT 身份验证、文件传输、剪贴板同步、自动重连 等完整功能。

308 阅读

教程如果你一直想拥有一个属于自己的网盘,但又不想买 VPS、维护数据库或者折腾复杂环境,那么这个基于 Cloudflare…

CloudDisk:基于 Cloudflare Workers 的免费个人网盘,无需 VPS、MySQL,支持 R2+D1+KV 一键部署

如果你一直想拥有一个属于自己的网盘,但又不想买 VPS、维护数据库或者折腾复杂环境,那么这个基于 Cloudflare Workers 的开源项目 CloudDisk 值得看看。整个系统运行在 Cloudflare 免费套餐上,文件存储使用 R2,数据库使用 D1,会话数据使用 KV,不需要 MySQL,也不需要服务器。支持多用户登录、文件夹管理、分享链接、在线预览、Office 文档查看、文本在线编辑、大文件断点续传、协作者权限管理等功能。无论是个人备份、开发者存放代码文件、团队共享资料,还是搭建自己的私有网盘,都可以直接部署到 Cloudflare,一键完成,几乎零维护成本,非常适合独立开发者、个人站长和轻量团队使用。

284 阅读

教程很多朋友在使用 Linux 服务器或者 VPS 时,经常会遇到 DNS 污染、解析慢、域名无法访问等问题。其实只需要安…

Linux 开启 DNS over HTTPS(DoH)教程:使用 Cloudflared + systemd 实现加密 DNS,防污染、防劫持

很多朋友在使用 Linux 服务器或者 VPS 时,经常会遇到 DNS 污染、解析慢、域名无法访问等问题。其实只需要安装 Cloudflare 官方的 cloudflared,并配合 systemd 自启动,就能让整个系统通过 DNS over HTTPS(DoH)进行加密解析。

237 阅读

常见问题

为什么没有安装任何自动安全更新?

可能是当前没有符合规则的安全更新,也可能是允许来源没有匹配实际仓库。先执行 dry-run,再通过 apt-cache policy 检查候选版本及其来源。

为什么 apt 提示软件包管理器被锁定?

先检查 apt-daily.service、apt-daily-upgrade.service 和相关进程。任务运行时应等待完成,不要直接删除 dpkg 或 APT 锁文件,以免破坏软件包状态。

更新安装后,服务会自动使用新版本吗?

不一定。磁盘上的软件包更新后,长期运行的进程可能仍在使用旧库,需要根据应用维护方式重新加载或重启;内核更新通常要重启系统才完全生效。

能用 unattended-upgrades 自动升级 Ubuntu 大版本吗?

不建议。无人值守安全更新与发行版大版本升级是两类任务,后者涉及仓库、依赖和配置兼容性,应先备份并安排独立维护窗口。

评价与回复

无需登录;审核通过后公开显示。