VPS Linux 基本系統管理指令教學:主機維護與疑難排解

帶你建立 VPS 日常系統管理的基本觀念與操作順序,涵蓋套件管理、防火牆設定、使用者權限、服務管理、定時任務與安全加固,讓維護主機有章法。

VPSLinux指令防火牆系統管理教學維護疑難排解常用指令伺服器管理UFWsystemctlcron使用者管理安全加固

系統管理最難的不是單一指令,而是你不知道平常該看什麼、出事該先查哪裡。這篇會把 VPS 管理者最常碰到的日常工作拆成一套比較好上手的順序。

你如果不想每次都只是照著別人的畫面一步一步跟著按,卻不知道自己到底改了什麼,這篇會比較適合你。重點不是讓你背流程,而是讓你下次遇到類似情況時,還知道該怎麼自己判斷。

你會學到什麼

  • 理解 VPS 系統管理最常見的工作面向。
  • 遇到問題時知道先看服務、資源還是權限。
  • 建立比臨時救火更穩定的日常維護習慣。
  • 學會 cron 定時任務與安全加固基礎。

什麼情況最適合先看這篇

  • 第一次自己管理 Linux 主機,想把操作做穩而不是只會貼指令的人
  • 你現在正要處理「VPS Linux 基本系統管理指令」這類操作
  • 你希望做完之後不只功能能用,連驗證與排錯也有概念

開始前先確認

  • 整理目前主機上的主要服務。
  • 確認你有 sudo 權限。
  • 正式站先保留操作紀錄。

先提醒你一件事

VPS 最怕的不是不會下指令,而是你不知道指令會影響到哪個服務、哪個設定檔、哪個對外連線。

詳細教學與操作步驟

本文整理 VPS 日常管理最常用的 Linux 指令,涵蓋套件管理、防火牆、系統監控、使用者管理及服務管理。

套件管理

Ubuntu / Debian(apt):

# 更新套件清單
apt update

# 升級所有已安裝套件
apt upgrade -y

# 安裝套件
apt install nginx -y

# 移除套件
apt remove nginx -y

# 完全移除(含設定檔)
apt purge nginx -y

# 搜尋套件
apt search nginx

# 清理不需要的依賴
apt autoremove -y

CentOS / Rocky Linux / AlmaLinux(dnf):

# 更新所有套件
dnf update -y

# 安裝套件
dnf install nginx -y

# 移除套件
dnf remove nginx -y

# 搜尋套件
dnf search nginx

更多 APT 進階操作(依賴衝突、版本鎖定、PPA 管理)請參考 APT 套件管理教學

防火牆設定(UFW)

UFW(Uncomplicated Firewall)是 Ubuntu 預設的防火牆管理工具,操作簡單直覺。

  1. 務必先允許 SSH,再啟用防火牆:

    ufw allow 22/tcp
    ufw enable
    
  2. 允許 HTTP 和 HTTPS:

    ufw allow 80/tcp
    ufw allow 443/tcp
    
  3. 允許特定 IP 存取特定 port:

    # 只允許 1.2.3.4 存取 MySQL
    ufw allow from 1.2.3.4 to any port 3306
    
  4. 查看防火牆狀態與規則:

    ufw status verbose
    ufw status numbered
    
  5. 刪除規則:

    # 用編號刪除(先用 status numbered 查看編號)
    ufw delete 3
    
    # 用規則內容刪除
    ufw delete allow 80/tcp
    
  6. 拒絕特定 IP:

    ufw deny from 5.6.7.8
    

**提醒:**啟用 UFW 前,請確保已允許 SSH(Port 22),避免連線中斷。如果你改了 SSH port,記得同步調整。

系統監控

# 查看系統運行時間與負載
uptime

# 查看記憶體使用狀況
free -h

# 查看磁碟使用狀況
df -h

# 即時監控程序(推薦安裝 htop)
apt install htop -y
htop

# 查看特定程序
ps aux | grep nginx

# 查看即時系統日誌
journalctl -f

# 查看特定服務日誌
journalctl -u nginx --since "1 hour ago"

建立非 root 使用者

日常操作建議使用非 root 帳號,需要管理權限時再使用 sudo

  1. 建立新使用者:

    adduser username
    
  2. 將使用者加入 sudo 群組:

    usermod -aG sudo username
    
  3. 複製 SSH 金鑰到新使用者(讓新帳號也能用金鑰登入):

    mkdir -p /home/username/.ssh
    cp ~/.ssh/authorized_keys /home/username/.ssh/
    chown -R username:username /home/username/.ssh
    chmod 700 /home/username/.ssh
    chmod 600 /home/username/.ssh/authorized_keys
    
  4. 測試新帳號:

    su - username
    sudo whoami  # 應顯示 root
    
  5. 確認正常後,建議在 /etc/ssh/sshd_config 禁止 root 直接登入:

    PermitRootLogin no
    AllowUsers username
    

服務管理(systemctl)

systemctl 是管理系統服務的標準工具:

# 啟動服務
sudo systemctl start nginx

# 停止服務
sudo systemctl stop nginx

# 重新啟動服務
sudo systemctl restart nginx

# 重新載入設定(不中斷服務)
sudo systemctl reload nginx

# 查看服務狀態
sudo systemctl status nginx

# 設定開機自動啟動
sudo systemctl enable nginx

# 取消開機自動啟動
sudo systemctl disable nginx

# 查看所有運行中的服務
systemctl list-units --type=service --state=running

# 查看服務啟動失敗的原因
systemctl list-units --failed

Cron 定時任務

自動化重複性工作是系統管理的重要環節:

# 編輯 crontab
crontab -e

# 查看目前的排程
crontab -l

Cron 時間格式:分 時 日 月 星期

# 每天凌晨 3 點執行備份
0 3 * * * /opt/backups/backup.sh

# 每小時檢查服務狀態
0 * * * * systemctl is-active nginx || systemctl restart nginx

# 每週日清理日誌
0 4 * * 0 journalctl --vacuum-time=7d

# 每月 1 號更新系統
0 2 1 * * apt update && apt upgrade -y >> /var/log/auto-update.log 2>&1

**重要提醒:**cron 的環境變數和你手動操作時不同,腳本中建議使用完整路徑(如 /usr/bin/rsync 而不是 rsync)。

安全加固基礎

除了 Fail2Ban 之外,還有幾個基礎的安全措施:

設定自動安全更新:

apt install unattended-upgrades -y
dpkg-reconfigure -plow unattended-upgrades

檢查異常登入紀錄:

# 最近的登入紀錄
last -10

# 失敗的登入嘗試
lastb -10

# 目前線上的使用者
who
w

檢查是否有可疑的 SUID 程式:

find / -perm -4000 -type f 2>/dev/null

停用不需要的服務:

# 列出所有啟用的服務
systemctl list-unit-files --state=enabled

# 停用不需要的服務(例如)
sudo systemctl disable cups

日常維護建議時程

頻率工作項目
每天自動備份(cron)
每週檢查磁碟空間、記憶體、日誌
每月系統更新、清理舊檔案、檢查安全日誌
每季備份還原演練、SSL 憑證到期檢查

做完後怎麼確認自己真的有設對

  • ufw status 確認防火牆規則正確,SSH port 有開。
  • 用新建的使用者帳號測試 SSH 登入和 sudo 權限。
  • crontab -l 確認排程已設定。
  • 手動停掉再重啟一次服務,確認指令沒問題。

這一題最常踩的坑

  • 一有錯就直接改設定,沒有先看現況。
  • 更新、權限、服務管理都混在一起做,後面難排查。
  • 沒有固定維護節奏,問題常常累積到很難收拾。
  • 啟用防火牆前忘了允許 SSH,直接把自己鎖在門外。
  • cron 的環境變數不同導致腳本失敗,但因為沒看 log 所以不知道。

如果你要往下一步走

想把常用查詢指令補齊,可以接著看 Linux 系統維護常用指令大全。要強化 SSH 安全性,參考 SSH 連線教學。如果你準備開始自己架服務,可以直接對照侃瑞的 VPS 方案與價格 選環境。

需要主機來實作?

侃瑞科技提供 cPanel 虛擬主機與 VPS,教學裡的操作開箱即用。

查看方案 →
LINE 諮詢