當我們租用 VPS(Virtual Private Server)並選擇 Ubuntu 作為作業系統時,許多人會發現系統似乎會「自動更新」。有時早上登入後會看到套件已升級,甚至重啟後 kernel 版本也改變了。這究竟是怎麼回事?Ubuntu 在 VPS 上的預設自動更新機制,其實是為了平衡安全性與穩定性而設計的。本文將帶你深入了解這個機制的運作邏輯,並教你如何檢查、調整或停用它。

一、Ubuntu 的自動更新基礎:APT 與 systemd 計時器
Ubuntu 的套件管理核心是 APT(Advanced Package Tool)。APT 負責從官方套件庫下載更新資訊、比對版本、處理相依關係並執行升級。從 Ubuntu 16.04 起,系統內建兩個 systemd timer 負責自動化這個流程:
- apt-daily.timer:每天執行
apt update,更新本機的套件清單。 - apt-daily-upgrade.timer:每天嘗試進行升級(實際執行的動作取決於自動更新設定)。
這些計時器的狀態可透過指令 systemctl list-timers | grep apt 查詢。
二、VPS 上的預設設定:安全更新優先、非全域升級
大多數 VPS 供應商(如 ssdnodes、Vultr、Linode 等)在建立 Ubuntu 映像時,會採用「精簡預設設定」。這代表系統的 /etc/apt/apt.conf.d/20auto-upgrades 通常只包含:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
這兩行設定的意思是:
- 每天更新套件清單(讓系統知道哪些軟體有新版本)。
- 自動安裝安全性更新,透過
unattended-upgrades套件進行。
換句話說,Ubuntu VPS 的預設模式只會針對「安全性修補(Security Updates)」執行自動升級,不會主動升級所有軟體。這樣的設計能降低相依性變動造成的服務中斷風險,同時確保系統仍具備基本的安全防護能力。
三、自動更新的優缺點與調整方式
自動更新雖然方便,但對伺服器而言並非完全無風險。其主要優點是能即時修補安全漏洞,減少被攻擊的可能性;缺點則在於若更新牽涉到核心(Kernel)或服務相依,可能導致容器、資料庫或 Web 服務中斷。尤其在生產環境中,版本穩定性往往比更新速度更重要。
若你希望更積極地維護系統,可在同一檔案中新增以下設定:
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
這樣系統除了自動更新與升級安全性套件外,還會定期清理暫存檔、下載可更新的套件,確保磁碟不被無用資料佔滿。相反地,若你想停用自動更新,只需將「1」改為「0」,或停用相關 systemd timer 即可:
sudo systemctl disable --now apt-daily.timer apt-daily-upgrade.timer
四、建議策略:安全性自動更新 + 手動版本控制
對於 VPS 管理者而言,最理想的做法是保留自動安全性更新,並透過定期維護手動檢查全系統升級。建議每隔一至兩週執行:
sudo apt update && sudo apt list --upgradable
若確認更新內容不影響服務,再執行 sudo apt upgrade 或 sudo apt full-upgrade。同時,可透過檢查日誌檔 /var/log/unattended-upgrades/unattended-upgrades.log 確認自動更新運作是否正常。
總結來說,Ubuntu VPS 的預設自動更新設計是「安全第一、穩定為主」。了解這個機制後,你就能根據實際需求決定是否放寬更新範圍,或僅維持核心安全補丁。這樣不僅能確保伺服器穩定,也能避免因版本不一致造成潛在風險。
《上一篇》Canva 當機不用慌!快速透過 canvastatus.com 查看伺服器狀態!
《下一篇》GitHub Star History:可視化追蹤 GitHub 星標成長曲線 









留言區 / Comments
萌芽論壇