簡介
Ubuntu Server 是一個可靠且被廣泛採用的 Linux 發行版,但即使是最可靠的系統也可能面臨影響效能或中斷營運的挑戰。了解如何疑難排解常見問題對於維持正常運作時間和確保無縫功能至關重要。在本指南 「Ubuntu Server 常見問題疑難排解」 中,我們將探討診斷和解決常見問題的實用技術,例如啟動失敗、SSH 連線錯誤、網路問題等。你還將學習如何有效利用系統記錄來查明問題的根本原因,並將伺服器恢復到最佳效能。
往期文章:
01. Ubuntu Server 簡介 – SysOSX: AI & Cloud
02. 如何搭建你的第一台 Ubuntu 伺服器:初學者指南 – SysOSX: AI & Cloud
03.Ubuntu Server 的 Linux 命令列精通 – SysOSX: AI & Cloud
04. 在 Ubuntu Server 上管理使用者和權限:綜合指南 – SysOSX: AI & Cloud
05. Ubuntu Server 網路基礎:綜合指南 – SysOSX: AI & Cloud
06. 在 Ubuntu Server 上安裝和管理軟體:完整指南 – SysOSX: AI & Cloud
07.為 Ubuntu Server 打補丁和更新:綜合指南 – SysOSX: AI & Cloud
08. 保護你的 Ubuntu 伺服器:強化和防護的實用步驟 – SysOSX: AI & Cloud
09. Ubuntu 伺服器稽核與記錄
10. Ubuntu Server 系統監控工具:綜合指南 – SysOSX: AI & Cloud
11. Ubuntu 伺服器集中式記錄:必讀指南 – SysOSX: AI & Cloud
12. Ubuntu Server 稽核與合規:最佳實務 – SysOSX: AI & Cloud
13.為 Ubuntu Server 設定託管和 Web 應用:終極指南 – SysOSX: AI & Cloud
14. 在一台 Ubuntu 伺服器上託管多個網站:實用技巧 – SysOSX: AI & Cloud
15. 在 Ubuntu Server 上管理儲存體和磁碟:簡單指南 – SysOSX: AI & Cloud
16. 在 Ubuntu Server 上設定檔案共用服務:完整指南 – SysOSX: AI & Cloud
17. 在 Ubuntu 上設定安全的資料庫伺服器:MySQL 與 MariaDB – SysOSX: AI & Cloud
18. 如何在 Ubuntu Server 上設定和使用 LVM:綜合指南 – SysOSX: AI & Cloud
19. 使用 KVM 進行虛擬化簡介:Ubuntu Server 初學者指南 – SysOSX: AI & Cloud
20. 如何在 Ubuntu Server 上安裝 Docker:容器化逐步指南 – SysOSX: AI & Cloud
21. LXD 入門:輕鬆安裝容器 + 速查表 – SysOSX: AI & Cloud
22. 在 Ubuntu Server 上開始使用 Podman:完整指南 – SysOSX: AI & Cloud
23. 在雲端中部署 Ubuntu Server:逐步指南 – SysOSX: AI & Cloud
24. 使用 Ansible 自動搭建 Ubuntu Server:實用指南 – SysOSX: AI & Cloud
25.將 Ubuntu Server 從 22.04 升級到 24.04:逐步指南 – SysOSX: AI & Cloud
目錄
Ubuntu Server 常見問題及疑難排解方法
1. 啟動問題
啟動問題可能是由損壞的檔案、硬體故障或設定錯誤引起的。
症狀:
- 伺服器無法啟動,並顯示空白畫面或錯誤訊息。
- GRUB 選單無法存取或缺失。
- 啟動期間出現核心恐慌錯誤。
疑難排解步驟:
步驟 1:存取 GRUB 選單
重新啟動伺服器並按住 Shift 鍵(或 Esc 鍵,適用於 UEFI 系統)以存取 GRUB 選單。
步驟 2:啟動到復原模式
選擇 Advanced Options > Recovery Mode ,以啟動到最小環境進行疑難排解。
步驟 3:檢查系統記錄
檢查 系統記錄 ,尋找與啟動程序相關的錯誤:
sudo journalctl -b
尋找與核心模組、磁碟掛載或服務相關的錯誤或警告。
步驟 4:修復損壞的軟體包
執行以下命令修復損壞的軟體包:
sudo apt update
sudo apt install --fix-broken
步驟 5:重新安裝 GRUB
如果 GRUB 已損壞,請重新安裝它:
sudo grub-install /dev/sda
sudo update-grub
步驟 6:檢查磁碟健康狀態
使用 fsck 檢查和修復磁碟錯誤:
sudo fsck /dev/sda
2. SSH 錯誤
SSH 錯誤可能會阻止遠端存取伺服器,從而中斷管理和自動化工作。
症狀:
- 無法透過 SSH 連線到伺服器。
- 「Connection refused」或「Permission denied」錯誤。
- SSH 停滯或逾時。
疑難排解步驟:
步驟 1:驗證 SSH 服務
確保 SSH 服務正在執行:
sudo systemctl status ssh
如果服務處於非使用中狀態,請啟動它:
sudo systemctl start ssh
步驟 2:檢查 SSH 記錄
檢查 SSH 記錄以查看詳細的錯誤訊息:
sudo tail -n 50 /var/log/auth.log
常見問題包括:
- 身分驗證失敗。
- 由於 fail2ban 或防火牆規則導致的 IP 位址封鎖。
步驟 3:檢查防火牆規則
確保防火牆允許 SSH 流量:
sudo ufw allow OpenSSH
sudo ufw status
步驟 4:檢查 SSH 設定
檢查 SSH 設定檔中是否存在錯誤:
sudo nano /etc/ssh/sshd_config
進行變更後重新啟動 SSH:
sudo systemctl restart ssh
步驟 5:驗證網路連線
確保伺服器可以存取:
ping <server-ip>
3. 網路連線問題
網路問題可能會阻止伺服器存取網際網路或與其他裝置通訊。
症狀:
- 無法 ping 通外部網站或其他伺服器。
- DNS 解析錯誤。
- 網路介面已關閉或設定錯誤。
疑難排解步驟:
步驟 1:檢查網路介面
列出使用中的網路介面:
ip a
如果某個介面已關閉,請將其啟動:
sudo ip link set <interface-name> up
步驟 2:檢查網路錯誤記錄
檢查與網路相關的記錄以發現潛在問題:
sudo journalctl -u systemd-networkd
步驟 3:驗證 IP 設定
檢查伺服器的 IP 位址、閘道和 DNS 設定:
cat /etc/netplan/*.yaml
如果設定不正確,請編輯檔案並套用變更:
sudo nano /etc/netplan/*.yaml
sudo netplan apply
Netplan 設定範例:
network:
version: 2
ethernets:
eth0:
dhcp4: true
步驟 4:測試 DNS 解析
驗證 DNS 解析:
nslookup google.com
如果 DNS 解析失敗,請使用有效的 DNS 伺服器更新 /etc/resolv.conf :
nameserver 8.8.8.8
nameserver 8.8.4.4
4. 磁碟空間問題
磁碟空間不足可能會導致應用程式損毀或阻止更新。
症狀:
- 「No space left on device」錯誤。
- 伺服器變得無回應。
疑難排解步驟:
步驟 1:檢查磁碟使用情況
使用 df 檢查磁碟使用情況:
df -h
步驟 2:找出大檔案
尋找佔用磁碟空間的大檔案:
sudo du -ah / | sort -rh | head -n 10
步驟 3:檢查記錄檔案大小
記錄檔案可能會變得非常大。請檢查 /var/log ,尋找過大的記錄:
sudo du -sh /var/log/*
刪除或封存舊記錄:
sudo rm -rf /var/log/*.gz
sudo rm -rf /var/log/*.log.old
步驟 4:擴充磁碟空間
如果磁碟已滿,請擴充磁碟區(AWS、Azure 和 GCP 等雲端平台允許調整磁碟大小)。
5. 軟體包安裝錯誤
軟體包安裝錯誤可能是由損壞的相依性或儲存庫問題引起的。
症狀:
- 安裝期間出現「Unable to locate package」或「Dependency errors」。
疑難排解步驟:
步驟 1:檢查軟體包錯誤記錄
檢查 apt 記錄以查看詳細錯誤:
sudo tail -n 50 /var/log/apt/history.log
步驟 2:更新軟體包索引
確保軟體包索引是最新的:
sudo apt update
步驟 3:修復損壞的相依性
執行以下命令解決相依性問題:
sudo apt install --fix-broken
步驟 4:新增缺少的儲存庫
如果某個軟體包無法使用,請新增所需的儲存庫:
sudo add-apt-repository universe
sudo apt update
6. CPU 或記憶體使用率過高
過多的資源使用可能會導致效能下降和回應時間變慢。
症狀:
- 伺服器變得無回應。
- 應用程式損毀或逾時。
疑難排解步驟:
步驟 1:監控資源使用情況
使用 top 或 htop 監視 CPU 和記憶體使用情況:
top
步驟 2:檢查應用程式錯誤記錄
檢查 /var/log 中的應用程式特定記錄,尋找導致高資源佔用的錯誤。
步驟 3:找出佔用資源過多的處理程序
尋找佔用過多資源的處理程序:
ps aux --sort=-%cpu | head -n 10
ps aux --sort=-%mem | head -n 10
步驟 4:終止不必要的處理程序
終止佔用資源過多的處理程序:
sudo kill <pid>
使用記錄進行疑難排解
記錄是疑難排解伺服器問題時最有價值的工具之一。以下是檢查常見問題記錄的方法:
- 系統記錄:
sudo journalctl -xe提供有關系統層級錯誤和警告的詳細記錄。 - 身分驗證記錄:
sudo tail -n 50 /var/log/auth.log有助於診斷 SSH 和登入相關問題。 - 應用程式特定記錄:
檢查/var/log,尋找應用程式特定記錄(例如 Apache、MySQL)。 - 核心記錄:
sudo dmesg顯示與核心相關的訊息,對硬體和啟動問題很有用。
結論
疑難排解 Ubuntu Server 問題需要採用系統化的方法來診斷和解決問題。在本指南中,我們介紹了:
- 解決啟動問題、SSH 錯誤和網路連線問題。
- 修復磁碟空間和軟體包安裝錯誤。
- 有效利用記錄診斷問題。
按照這些步驟並利用記錄,你可以有效率地識別和修復伺服器問題,確保 Ubuntu Server 環境穩定可靠。