Linux 伺服器不是「有更新就一定立刻重開機」,也不是「能不重開就永遠不重開」。比較務實的做法是:先確認更新內容、判斷是否影響核心或長時間執行的服務,再安排合適的維護時間。
本文以 Ubuntu / Debian 系 VPS 為主,適合用來建立基礎維護觀念。正式 production 主機更新前,請先確認你有備份、可登入備援方式,以及回復計畫。
你會先搞懂這幾件事
apt update只是更新套件清單,不會真的升級軟體。apt upgrade會更新已安裝套件,但不代表所有服務都已使用新版本。/var/run/reboot-required出現時,通常代表系統建議重開機。- 核心、glibc、OpenSSL、systemd 這類底層元件更新後,要特別留意。
- 不要在沒有備份與維護窗口的情況下,隨手更新重要 production 主機。
先分清楚 apt update、upgrade、full-upgrade
常見指令差異如下:
| 指令 | 用途 | 新手注意 |
|---|---|---|
sudo apt update | 更新套件索引 | 不會真正安裝更新 |
sudo apt upgrade | 更新可安全升級的套件 | 適合一般例行維護 |
sudo apt full-upgrade | 允許安裝或移除相依套件 | 影響較大,執行前要看清楚 |
sudo apt autoremove | 移除不再需要的套件 | 先確認不會移除你仍需要的元件 |
新手維護 VPS 時,通常先從:
sudo apt update
apt list --upgradable
sudo apt upgrade
開始。真正執行前要看 apt 顯示的套件清單,不要只按 Enter。
怎麼看是否需要重開機
Ubuntu / Debian 常見判斷方式:
test -f /var/run/reboot-required && cat /var/run/reboot-required
如果檔案存在,代表系統建議重開機。你也可以看哪些套件要求重開:
test -f /var/run/reboot-required.pkgs && cat /var/run/reboot-required.pkgs
常見會讓你需要安排重開的類型包含:
- Linux kernel
libc6/ glibcsystemd- 重要驅動或底層函式庫
- 會影響大量服務的安全修補
如果是一般應用套件,可能只需要重啟對應服務;如果是核心或底層元件,通常要安排 reboot。
更新後服務可能還在使用舊程式
套件更新完成,不代表正在執行的服務已經重新載入新版本。舉例來說,Nginx、PHP-FPM、MariaDB、Docker、SSH daemon 都可能需要重新啟動服務。
你可以先檢查服務狀態:
systemctl status nginx
systemctl status php8.3-fpm
systemctl status mariadb
systemctl status docker
systemctl status ssh
然後依照實際服務安排重啟:
sudo systemctl restart nginx
sudo systemctl restart php8.3-fpm
不要盲目複製重啟指令。你的 PHP 版本、Web server、資料庫名稱可能不同。執行前先用 systemctl list-units --type=service 或專案文件確認服務名稱。
什麼時候不要隨手重開 production VPS
以下情況不要直接按下 reboot:
- 你沒有確認備份是否可還原。
- 你不知道主機開機後網路設定是否會正常。
- 你沒有主機商 Console、VNC 或救援模式的存取方式。
- 你不知道服務啟動順序與相依關係。
- 主機上有重要網站、Email、API 或客戶服務正在使用。
比較好的做法是先排維護時間,記錄目前狀態:
uptime
ip address
ip route
systemctl --failed
df -h
free -h
重開後再做一次同樣檢查,確認服務是否恢復。
安全更新的基本節奏
中小型網站或 VPS 可以先用這個節奏:
| 項目 | 建議頻率 | 重點 |
|---|---|---|
| 查看可更新套件 | 每週或每兩週 | 不要讓安全更新長期累積 |
| 一般套件更新 | 每月或依維護窗口 | 先看清楚更新項目 |
| 重要安全公告 | 需要時加速處理 | 尤其是公開服務與遠端登入 |
| 重開機 | 有需要時安排 | 先確認備份與維護時間 |
如果你不想自己每天登入查更新,可以評估自動安全更新,但 production 主機仍要搭配監控、備份與重開機策略。
更新前後的簡單檢查清單
更新前:
- 確認最近備份存在,且知道怎麼還原。
- 確認可以用 SSH 以外的方式進入主機管理介面。
- 看清楚要更新哪些套件。
- 避開客戶使用高峰。
- 記錄目前服務狀態與 IP 設定。
更新後:
- 查看
systemctl --failed。 - 確認網站、API、SSH、資料庫、排程是否正常。
- 檢查
/var/run/reboot-required。 - 如果重開機,確認開機後服務有自動啟動。
- 把這次更新與異常記錄下來。
延伸閱讀
- Ubuntu VPS 新手教學:IP 設定、改密碼、網卡名稱與基礎故障排除
- SSH 被暴力破解怎麼辦?Fail2Ban、防火牆與登入日誌檢查
- 中小企業資安健檢清單:DNS、Email、SSL、備份與帳號權限
需要協助判斷目前環境是否安全?
如果你已經有 VPS、cPanel、WordPress、AI 工具或掃描報告,但不確定哪些安全更新要先處理,可以到侃瑞科技官方網站取得初步判斷。