跳轉到內容

Debian/Ubuntu 系統優化設置完全指南 | 性能調優與安全配置教程

Debian Ubuntu System Optimization

為什麼需要系統優化?

新安裝的 Debian/Ubuntu 系統通常包含大量不必要的軟件包和服務,這會:

  • ⚠️ 佔用磁盤空間:默認安裝可能佔用 2-5GB
  • ⚠️ 消耗內存資源:後臺服務佔用 100-300MB 內存
  • ⚠️ 安全風險:不必要的服務增加攻擊面
  • ⚠️ 影響性能:多餘進程降低系統響應速度

通過系統化優化,可以:

  • ✅ 釋放 1-3GB 磁盤空間
  • ✅ 節省 200-500MB 內存
  • ✅ 提升系統響應速度 20-30%
  • ✅ 減少安全漏洞風險

系統下載與選擇

Debian vs Ubuntu 對比

特性DebianUbuntu
穩定性⭐⭐⭐⭐⭐(極穩定)⭐⭐⭐⭐(穩定)
軟件新鮮度較舊(保守)較新
社區支持龐大更大
商業支持Canonical 官方支持
適用場景服務器、生產環境桌面、開發、服務器
更新週期2-3 年LTS 5 年,常規 9 個月
包管理apt/dpkgapt/dpkg(相同)

推薦選擇:

  • 🖥️ VPS 服務器: Debian 12(輕量、穩定)
  • 💻 開發環境: Ubuntu 22.04/24.04 LTS(軟件新、文檔多)
  • 🏢 企業生產: Ubuntu LTS(有商業支持)

初始化系統檢查

在開始優化前,先了解系統當前狀態:

bash
# 查看系統信息
lsb_release -a
uname -r

# 查看磁盤使用
df -h

# 查看內存使用
free -h

# 查看 CPU 信息
lscpu

# 查看運行時間
uptime

步驟一:開啟 SSH 服務遠程登錄

安裝必要工具

sh
sudo apt update
sudo apt install net-tools openssh-server nano htop curl wget git -y

工具說明:

  • net-tools: 網絡工具(ifconfig, netstat)
  • openssh-server: SSH 服務端
  • nano: 文本編輯器
  • htop: 進程監控
  • curl/wget: 下載工具
  • git: 版本控制

查看 SSH 服務狀態

sh
# 檢查是否安裝
dpkg -l | grep ssh

# 查看服務狀態
systemctl status ssh

# 如果沒有啟動,啟動服務
sudo systemctl start ssh
sudo systemctl enable ssh  # 開機自啟

預期輸出:

● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled)
     Active: active (running) since ...

配置 SSH 端口(可選但推薦)

bash
# 編輯 SSH 配置
sudo nano /etc/ssh/sshd_config

# 修改端口(取消註釋並改為其他端口,如 2222)
Port 2222

# 重啟 SSH 服務
sudo systemctl restart ssh

注意: 修改端口後,連接時需要指定端口:

bash
ssh -p 2222 root@your_server_ip

步驟二:清理不必要的軟件包

刪除桌面環境軟件(服務器版)

如果你安裝的是桌面版但用作服務器,可以刪除圖形界面:

sh
# 卸載 GNOME 桌面環境
sudo apt --purge remove ubuntu-desktop gnome-shell gnome-core

# 卸載常用桌面應用
sudo apt --purge remove thunderbird totem rhythmbox empathy brasero \
  simple-scan gnome-mahjongg aisleriot gnome-mines cheese \
  transmission-common gnome-orca gnome-sudoku remmina

# 自動卸載不需要的依賴
sudo apt autoremove --purge

# 清理緩存
sudo apt autoclean
sudo apt clean

釋放空間估算:

  • GNOME 桌面:~1.5GB
  • 桌面應用:~500MB
  • 依賴包:~200MB
  • 總計可釋放:~2.2GB

驗證清理效果

bash
# 清理前後對比
df -h

# 查看已安裝的包數量
dpkg -l | wc -l

步驟三:系統時間同步

方法 1:使用 systemd-timesyncd(推薦)

現代 Debian/Ubuntu 默認使用 systemd 時間同步:

bash
# 檢查狀態
timedatectl status

# 啟用 NTP 同步
sudo timedatectl set-ntp true

# 驗證
timedatectl

預期輸出:

               Local time: Sat 2026-04-11 19:30:00 CST
           Universal time: Sat 2026-04-11 11:30:00 UTC
                 RTC time: Sat 2026-04-11 11:30:00
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

方法 2:使用 chrony(更精確)

bash
# 安裝 chrony
sudo apt install chrony -y

# 啟動服務
sudo systemctl enable --now chrony

# 查看同步狀態
chronyc tracking

# 查看時間源
chronyc sources -v

方法 3:傳統 ntpdate(備用)

sh
# 安裝 ntpdate
sudo apt install ntpdate -y

# 手動同步(中國用戶推薦)
sudo ntpdate cn.pool.ntp.org

# 或全球 NTP 服務器
sudo ntpdate pool.ntp.org

# 將時間寫入硬件時鐘
sudo hwclock --systohc

# 添加到 crontab 每天同步
echo "0 3 * * * root ntpdate cn.pool.ntp.org && hwclock --systohc" | sudo tee -a /etc/crontab

NTP 服務器推薦:

  • 🇨🇳 中國:cn.pool.ntp.org
  • 🌏 亞洲:asia.pool.ntp.org
  • 🌍 全球:pool.ntp.org
  • 🇺🇸 美國:us.pool.ntp.org

步驟四:修改主機名

臨時修改(重啟失效)

bash
sudo hostname new-hostname

永久修改

bash
# 編輯主機名文件
sudo nano /etc/hostname
# 輸入新的主機名,如:my-vps

# 編輯 hosts 文件
sudo nano /etc/hosts
# 找到 127.0.1.1 行,修改為:
# 127.0.1.1   my-vps

# 重啟生效
sudo reboot

# 驗證
hostname

主機名命名建議:

  • 小寫字母、數字、連字符
  • 避免特殊字符和空格
  • 有意義且易識別(如:web-01, db-prod, vps-us)

步驟五:內核參數優化

網絡優化

編輯 sysctl 配置:

bash
sudo nano /etc/sysctl.d/99-network.conf

添加以下優化參數:

ini
# === 網絡性能優化 ===

# 增加 TCP 最大緩衝區大小
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

# 增加 TCP 讀寫緩衝區
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

# 啟用 TCP BBR 擁塞控制(參考我們的 BBR 教程)
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

# 增加 SYN 隊列長度
net.ipv4.tcp_max_syn_backlog = 8192

# 啟用 TCP Fast Open
net.ipv4.tcp_fastopen = 3

# 減少 TIME_WAIT 超時時間
net.ipv4.tcp_fin_timeout = 15

# 重用 TIME_WAIT socket
net.ipv4.tcp_tw_reuse = 1

# 增加本地端口範圍
net.ipv4.ip_local_port_range = 1024 65535

# 增加文件描述符限制
fs.file-max = 2097152

應用配置:

bash
sudo sysctl --system

內存優化

bash
sudo nano /etc/sysctl.d/99-memory.conf
ini
# === 內存優化 ===

# Swappiness 設置(參考我們的 Swap 教程)
vm.swappiness = 10

# 虛擬內存髒頁比例
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5

# OOM Killer 調整
vm.oom_kill_allocating_task = 1

步驟六:安全加固

1. 配置防火牆(UFW)

bash
# 安裝 UFW
sudo apt install ufw -y

# 設置默認策略
sudo ufw default deny incoming
sudo ufw default allow outgoing

# 允許 SSH(如果修改了端口,改為對應端口)
sudo ufw allow 22/tcp
# 或
sudo ufw allow 2222/tcp

# 允許 HTTP/HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# 啟用防火牆
sudo ufw enable

# 查看狀態
sudo ufw status verbose

2. 禁用 Root 密碼登錄(推薦密鑰登錄)

bash
# 編輯 SSH 配置
sudo nano /etc/ssh/sshd_config

# 修改以下配置
PermitRootLogin prohibit-password  # 禁止 root 密碼登錄,允許密鑰
PasswordAuthentication no          # 禁用所有密碼登錄
PermitEmptyPasswords no            # 禁止空密碼

# 重啟 SSH
sudo systemctl restart ssh

⚠️ 重要提醒: 在禁用密碼登錄前,務必先配置好 SSH 密鑰登錄

3. 安裝 Fail2ban

bash
# 安裝 Fail2ban
sudo apt install fail2ban -y

# 啟動服務
sudo systemctl enable --now fail2ban

# 詳細配置參考我們的 Fail2ban 教程

4. 定期自動更新安全補丁

bash
# 安裝無人值守更新
sudo apt install unattended-upgrades -y

# 配置自動更新
sudo dpkg-reconfigure -plow unattended-upgrades

# 編輯配置
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

關鍵配置:

text
Unattended-Upgrade::Allowed-Origins {
    "${distro_id}:${distro_codename}-security";
};

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

步驟七:性能監控工具

安裝監控工具集

bash
sudo apt install -y \
  htop \        # 進程監控
  iotop \       # IO 監控
  iftop \       # 網絡流量監控
  nethogs \     # 按進程顯示網絡使用
  sysstat \     # 系統統計(sar)
  tmux \        # 終端複用器
  screen        # 會話管理

常用監控命令

bash
# 實時監控 CPU 和內存
htop

# 監控磁盤 IO
iotop

# 監控網絡流量
iftop

# 查看系統負載歷史
sar -u 1 5

# 查看內存使用歷史
sar -r 1 5

# 查看網絡統計
sar -n DEV 1 5

步驟八:日誌管理

配置日誌輪轉

bash
# 編輯 journald 配置
sudo nano /etc/systemd/journald.conf
ini
[Journal]
# 限制日誌大小
SystemMaxUse=500M
RuntimeMaxUse=100M

# 日誌保留時間
MaxRetentionSec=1month

# 壓縮日誌
Compress=yes

重啟服務:

bash
sudo systemctl restart systemd-journald

清理舊日誌

bash
# 查看當前日誌佔用
journalctl --disk-usage

# 清理超過 7 天的日誌
sudo journalctl --vacuum-time=7d

# 限制日誌大小為 500MB
sudo journalctl --vacuum-size=500M

步驟九:創建交換空間(Swap)

對於小內存 VPS(≤2GB),強烈建議配置 Swap:

bash
# 參考我們的 Swap 詳細教程
# 快速創建 2GB Swap
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

# 設置 swappiness
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.d/99-swap.conf
sudo sysctl --system

步驟十:系統備份與快照

創建系統快照腳本

#!/bin/bash
# /usr/local/bin/system-backup.sh

BACKUP_DIR="/backup"
DATE=$(date +%Y%m%d_%H%M%S)
HOSTNAME=$(hostname)

# 創建備份目錄
mkdir -p $BACKUP_DIR

# 備份重要配置
tar czf $BACKUP_DIR/config_$HOSTNAME_$DATE.tar.gz \
  /etc/ssh/ \
  /etc/fstab \
  /etc/hostname \
  /etc/hosts \
  /etc/sysctl.d/ \
  /etc/ufw/ \
  /root/.ssh/

# 備份用戶數據(如果有)
# tar czf $BACKUP_DIR/data_$HOSTNAME_$DATE.tar.gz /home/

# 保留最近 7 天的備份
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete

echo "Backup completed: $BACKUP_DIR/config_$HOSTNAME_$DATE.tar.gz"

設置定時任務:

bash
# 每週日凌晨 2 點備份
echo "0 2 * * 0 root /usr/local/bin/system-backup.sh" | sudo tee -a /etc/crontab

完整優化腳本(一鍵執行)

創建一個自動化腳本,一次性完成所有優化:

#!/bin/bash
# system-optimize.sh - Debian/Ubuntu 系統優化腳本

set -e

echo "=== 開始系統優化 ==="

# 1. 更新系統
echo "[1/10] 更新系統..."
apt update && apt upgrade -y

# 2. 安裝必要工具
echo "[2/10] 安裝必要工具..."
apt install -y net-tools openssh-server nano htop curl wget git ufw fail2ban

# 3. 清理不必要軟件
echo "[3/10] 清理系統..."
apt autoremove --purge -y
apt autoclean

# 4. 配置時間同步
echo "[4/10] 配置時間同步..."
timedatectl set-ntp true

# 5. 配置防火牆
echo "[5/10] 配置防火牆..."
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw --force enable

# 6. 創建 Swap(如果內存 < 2GB)
MEM=$(free -m | awk '/^Mem:/{print $2}')
if [ $MEM -lt 2048 ]; then
    echo "[6/10] 創建 Swap..."
    fallocate -l 2G /swapfile
    chmod 600 /swapfile
    mkswap /swapfile
    swapon /swapfile
    echo '/swapfile none swap sw 0 0' >> /etc/fstab
    echo 'vm.swappiness=10' >> /etc/sysctl.d/99-swap.conf
fi

# 7. 優化內核參數
echo "[7/10] 優化內核參數..."
cat > /etc/sysctl.d/99-optimize.conf <<EOF
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
net.ipv4.tcp_fastopen = 3
vm.swappiness = 10
EOF
sysctl --system

# 8. 配置日誌限制
echo "[8/10] 配置日誌管理..."
sed -i 's/#SystemMaxUse=/SystemMaxUse=500M/' /etc/systemd/journald.conf
systemctl restart systemd-journald

# 9. 啟用自動安全更新
echo "[9/10] 啟用自動更新..."
apt install -y unattended-upgrades
dpkg-reconfigure -f noninteractive unattended-upgrades

# 10. 清理
echo "[10/10] 最終清理..."
apt clean
journalctl --vacuum-time=7d

echo "=== 系統優化完成!請重啟服務器 ==="
echo "重啟命令:sudo reboot"

使用方法:

bash
# 下載腳本
wget https://example.com/system-optimize.sh

# 賦予執行權限
chmod +x system-optimize.sh

# 執行(需要 root 權限)
sudo ./system-optimize.sh

# 重啟
sudo reboot

優化效果驗證

性能對比測試

bash
# 1. 檢查內存使用
free -h

# 2. 檢查磁盤空間
df -h

# 3. 檢查運行服務
systemctl list-units --type=service --state=running

# 4. 檢查網絡連接
ss -tuln

# 5. 壓力測試(可選)
apt install stress -y
stress --cpu 2 --io 1 --vm 1 --vm-bytes 256M --timeout 60s

預期優化效果

指標優化前優化後改善
內存佔用300-500MB100-200MB-60%
磁盤佔用2-5GB1-2GB-50%
啟動時間30-60秒10-20秒-60%
運行服務數20-30個8-12個-60%
安全評分CA+顯著提升

常見問題排查

Q1: 優化後無法 SSH 連接?

解決方案:

bash
# 通過 VNC 控制檯登錄
# 檢查 SSH 服務狀態
systemctl status ssh

# 檢查防火牆規則
ufw status

# 臨時禁用防火牆測試
ufw disable

# 恢復 SSH 配置
nano /etc/ssh/sshd_config
# 確保 PermitRootLogin 和 PasswordAuthentication 配置正確

Q2: 系統更新後優化失效?

解決方案:

bash
# 重新應用內核參數
sudo sysctl --system

# 檢查服務狀態
systemctl status ssh ufw fail2ban

# 重新啟用必要的服務
sudo systemctl enable --now ssh ufw fail2ban

Q3: Swap 未生效?

解決方案:

bash
# 檢查 Swap 狀態
swapon --show
free -h

# 如果沒有顯示,重新激活
sudo swapon /swapfile

# 檢查 fstab 配置
cat /etc/fstab | grep swap

最佳實踐總結

新服務器初始化清單

必做事項(前 30 分鐘):

推薦事項(第 1 天):

進階事項(第 1 周):

定期維護計劃

每日:

  • 檢查系統負載(htop
  • 查看失敗登錄嘗試(fail2ban-client status

每週:

  • 系統更新(apt update && apt upgrade
  • 清理日誌(journalctl --vacuum-time=7d
  • 檢查磁盤空間(df -h

每月:

  • 審查防火牆規則
  • 檢查備份完整性
  • 審計用戶賬戶和密鑰
  • 性能基準測試

相關教程推薦

通過本指南的系統化優化,你的 Debian/Ubuntu 服務器將更加安全、穩定、高效!🚀✨


延伸阅读

免责声明

本文仅供技术交流和学习参考。涉及第三方服务的链接可能包含 sponsored 标记,请自行核实服务条款、价格和可用性,并遵守当地法律法规。

最後更新於: