3793 字
19 分鐘
Oracle 雲端伺服器建立完整指南:Ubuntu 24.04 從零開始設定

在建立 Oracle 雲端伺服器(Ubuntu 24.04)時,有許多基礎但重要的設定步驟需要完成。本文將完整記錄從系統初始化、SSH 金鑰產生、防火牆設定到工具安裝的整個流程,方便日後快速查閱與實作。

環境說明: 本文以 Ubuntu 24.04 LTS 為基礎,所有指令皆針對此版本測試。


🚀 一、系統初始化設定#

首次登入伺服器後,建議先完成以下基礎設定,確保系統處於最新狀態並配置正確的時區。

1.1 設定系統時區#

將伺服器時區設定為台北時間(Asia/Taipei):

Terminal window
sudo timedatectl set-timezone Asia/Taipei

驗證時區設定:

Terminal window
timedatectl

輸出應顯示:

Time zone: Asia/Taipei (CST, +0800)

1.2 更新系統套件#

更新套件清單並升級所有已安裝的套件:

Terminal window
sudo apt update
sudo apt upgrade -y
  • apt update:更新套件清單,取得最新的套件資訊
  • apt upgrade:升級所有可更新的套件
  • -y 參數:自動回答 yes,無需手動確認

重要提示: 首次更新可能需要較長時間,請耐心等候。更新完成後建議重新啟動伺服器以套用核心更新。

1.3 安裝基礎監控工具#

安裝 btop 作為系統資源監控工具:

Terminal window
sudo apt install btop -y

btop 是一個現代化的系統監控工具,提供美觀的介面來查看:

  • CPU、記憶體、磁碟使用率
  • 網路流量
  • 執行中的程序

執行 btop 即可啟動監控介面:

Terminal window
btop

q 可退出程式。

1.4 其他建議安裝的工具#

Terminal window
# 基礎工具包
sudo apt install -y curl wget git vim
# 網路診斷工具
sudo apt install -y net-tools dnsutils
# 系統資訊工具
sudo apt install -y neofetch htop

🔑 二、SSH 金鑰產生與設定#

SSH 金鑰是連接遠端伺服器最安全的認證方式,透過公私鑰配對機制,可以免除每次輸入密碼的麻煩,同時提升安全性。

2.1 什麼是 SSH 金鑰#

SSH 金鑰由兩個檔案組成:

  • 私鑰(Private Key):保存在本機,絕不可外流
  • 公鑰(Public Key):放置在遠端伺服器 ~/.ssh/authorized_keys

當連線時,伺服器會用公鑰驗證本機的私鑰,確認身份無誤後即可登入。

2.2 在 Linux/macOS 上產生 SSH 金鑰#

使用 ssh-keygen 指令即可快速生成金鑰對:

Terminal window
ssh-keygen

執行後會有以下互動式提示:

  1. 設定金鑰儲存路徑:預設為 ~/.ssh/id_rsa,可直接按 Enter 使用預設值
  2. 設定密碼保護:可選擇為私鑰設定密碼(建議設定以增加安全性),或直接按 Enter 跳過

生成完成後,會產生兩個檔案:

  • ~/.ssh/id_rsa → 私鑰
  • ~/.ssh/id_rsa.pub → 公鑰

2.3 取得公鑰內容#

使用以下指令查看公鑰內容:

Terminal window
cat ~/.ssh/id_rsa.pub

將輸出的內容複製,並貼到遠端伺服器的 ~/.ssh/authorized_keys 檔案中即可。

2.4 連線到遠端伺服器#

Terminal window
ssh username@server_ip

若設定正確,即可直接登入而不需輸入密碼。


🔐 三、開啟密碼登入(非必要但有時需要)#

在某些情況下,可能需要暫時開啟密碼登入功能(例如測試或緊急存取)。

3.1 編輯 SSH 設定檔#

使用 vim 編輯器修改 SSH 設定:

Terminal window
sudo vim /etc/ssh/sshd_config

找到以下這行並修改:

PasswordAuthentication yes

vim 快速操作提示:

  • i 進入編輯模式
  • 編輯完成後按 Esc 退出編輯模式
  • 輸入 :wq 儲存並離開
  • 輸入 :q! 不儲存直接離開

3.2 重啟 SSH 服務#

在 Ubuntu 24.04 中,SSH 服務名稱為 ssh

Terminal window
sudo systemctl restart ssh

3.3 檢查 SSH 服務狀態#

確認服務正常運作:

Terminal window
sudo systemctl status ssh

若遇到錯誤訊息表示找不到 ssh 服務,可能需要安裝 OpenSSH Server:

Terminal window
sudo apt install openssh-server -y

🛡️ 四、Ubuntu 24.04 防火牆設定#

Ubuntu 24.04 預設使用 UFW (Uncomplicated Firewall) 作為防火牆管理工具,它是 iptables 的前端介面,提供簡單易用的指令來管理防火牆規則。

重要提醒: Oracle Cloud 的 Ubuntu 實例會預設配置 iptables 規則來保護實例安全。這些預設規則主要限制入站流量,只開放必要的埠號(如 SSH)。在使用 UFW 之前,必須先清理這些 iptables 規則,否則兩者會產生衝突,導致防火牆規則混亂。

4.1 清理預設的 iptables 規則#

Oracle Cloud Ubuntu 實例會預設配置 iptables 規則來提供基本的安全防護。這些規則通常會限制入站連線,只允許特定埠號(如 22 for SSH)的流量通過。為了避免與 UFW 衝突,必須先清理這些規則。

檢查現有的 iptables 規則#

先查看當前的 iptables 規則:

Terminal window
sudo iptables -L -n -v

您通常會看到類似以下的輸出,顯示有預設的 INPUT、FORWARD、OUTPUT 鏈,以及一些自訂規則。

清空所有 iptables 規則#

Terminal window
# 清空 filter 表的所有規則
sudo iptables -F
# 刪除所有自訂鏈
sudo iptables -X
# 清空計數器
sudo iptables -Z
# 設定預設政策為 ACCEPT(避免鎖住自己)
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

移除 iptables-persistent(如果有安裝)#

Terminal window
# 檢查是否安裝
dpkg -l | grep iptables-persistent
# 如果有安裝則移除
sudo apt remove iptables-persistent -y
sudo apt autoremove -y

確認 iptables 規則已清空#

檢查規則是否已成功清空:

Terminal window
sudo iptables -L -n -v

應該看到所有鏈(INPUT、FORWARD、OUTPUT)都是空的,且政策為 ACCEPT。

處理 iptables-persistent 服務(如果存在)#

Terminal window
# 檢查是否有 iptables-persistent 相關服務
sudo systemctl list-units --all | grep netfilter-persistent
# 如果有該服務,停用並禁用它
sudo systemctl stop netfilter-persistent
sudo systemctl disable netfilter-persistent

Oracle Cloud 特別說明: Oracle Cloud Ubuntu 實例通常會預設配置 iptables 規則來保護實例。這些規則主要透過配置文件在系統啟動時載入,而不是透過 systemd 服務。因此清空規則後,重新啟動系統時這些規則可能會再次出現。使用 UFW 後,這些預設規則會被 UFW 管理取代。

注意: 清空 iptables 規則後,伺服器暫時處於無防火牆保護狀態,建議立即設定 UFW。

4.2 Oracle 雲端多層防護機制#

在 Oracle Cloud 環境中,安全防護分為多個層次:

防護層級工具說明
雲端層級Oracle Cloud Infrastructure Network FirewallOCI 原生網路防火牆服務
網路層級Security Lists / Network Security Groups虛擬網路層級的安全規則
系統層級UFW (Ubuntu)作業系統層級的封包過濾
應用層級iptables底層網路封包控制工具

重要: 即使在系統層級開放埠號,仍需在 OCI Console 的 Security Lists 中設定對應規則,流量才能通過。

4.3 安裝 UFW#

如果系統尚未安裝 UFW,請先安裝:

Terminal window
sudo apt install ufw -y

4.4 UFW 基本操作#

檢查 UFW 狀態#

Terminal window
sudo ufw status

啟用 UFW#

Terminal window
sudo ufw enable

警告: 啟用前請確保已開放 SSH (22 埠),否則可能無法再次連線。

開放常用服務#

Terminal window
# 開放 SSH (必須先設定,避免被鎖在外面)
sudo ufw allow ssh
# 或指定埠號
sudo ufw allow 22/tcp
# 開放 HTTP 和 HTTPS
sudo ufw allow http
sudo ufw allow https
# 或指定埠號
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

開放特定埠號#

Terminal window
# 開放單一埠號
sudo ufw allow 8080/tcp
# 開放埠號範圍
sudo ufw allow 3000:3010/tcp
# 允許特定 IP 存取
sudo ufw allow from 203.0.113.0/24

查看規則清單#

Terminal window
# 簡單列表
sudo ufw status
# 詳細列表(含規則編號)
sudo ufw status numbered

刪除規則#

Terminal window
# 方法一:直接刪除規則
sudo ufw delete allow 8080/tcp
# 方法二:使用編號刪除
sudo ufw status numbered
sudo ufw delete 3

停用 UFW#

Terminal window
sudo ufw disable

📋 五、快速參考表#

以下整理所有操作指令與設定要點,方便快速查閱:

主題操作/說明指令或設定範例備註
設定時區設定系統時區為台北時間sudo timedatectl set-timezone Asia/Taipei驗證:timedatectl
系統更新更新系統套件清單並升級sudo apt update && sudo apt upgrade -y首次更新可能需要較長時間
安裝 btop安裝系統監控工具sudo apt install btop -y執行 btop 啟動,按 q 退出
SSH 金鑰產生產生 SSH 金鑰對ssh-keygen將公鑰放在伺服器 ~/.ssh/authorized_keys
取得公鑰顯示公鑰內容以便複製cat ~/.ssh/id_rsa.pub需要完整複製貼到伺服器
SSH 連線使用 SSH 連線到遠端伺服器ssh username@server_ip確保私鑰權限為 600
開啟密碼登入編輯 SSH 設定檔並重啟服務sudo vim /etc/ssh/sshd_config
PasswordAuthentication yes
sudo systemctl restart ssh
Ubuntu 24.04 服務名稱為 ssh
清空 iptables清空所有 iptables 規則sudo iptables -F
sudo iptables -X
sudo iptables -P INPUT ACCEPT
啟用 UFW 前建議先清空
移除 iptables-persistent移除 iptables 持久化服務sudo apt remove iptables-persistent -y避免與 UFW 衝突
安裝 UFW安裝 UFW 防火牆sudo apt install ufw -yUbuntu 預設防火牆管理工具
啟用 UFW啟動 UFW 防火牆sudo ufw enable啟用前先開放 SSH
UFW 開放埠號透過 UFW 開放服務sudo ufw allow ssh
sudo ufw allow 80/tcp
必須先開放 SSH 避免被鎖在外面
UFW 查看規則列出目前的 UFW 規則sudo ufw status numberednumbered 參數顯示規則編號
UFW 刪除規則刪除 UFW 規則sudo ufw delete 3使用編號刪除規則

✅ 六、建立伺服器的完整流程#

整合以上所有步驟,建議的 Ubuntu 24.04 伺服器建立流程如下:

6.1 本機操作(首次設定)#

  1. 在本機產生 SSH 金鑰對

    Terminal window
    ssh-keygen
  2. 取得公鑰內容

    Terminal window
    cat ~/.ssh/id_rsa.pub
  3. 複製公鑰內容(整行,包含開頭的 ssh-rsa 和結尾的使用者名稱)

6.2 伺服器初始設定#

步驟 1:首次登入並設定 SSH 金鑰#

使用 Oracle 提供的方式首次登入(通常是使用 OCI Console 的 SSH 功能或臨時密碼)

將公鑰加入授權檔案:

Terminal window
mkdir -p ~/.ssh
echo "你的公鑰內容" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

步驟 2:系統初始化#

設定時區:

Terminal window
sudo timedatectl set-timezone Asia/Taipei

更新系統:

Terminal window
sudo apt update
sudo apt upgrade -y

安裝基礎工具:

Terminal window
sudo apt install -y btop vim curl wget git

步驟 3:清理預設的 iptables 規則#

檢查現有規則:

Terminal window
sudo iptables -L -n -v

清空 iptables:

Terminal window
sudo iptables -F
sudo iptables -X
sudo iptables -Z
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

移除 iptables-persistent(如果有安裝):

Terminal window
sudo apt remove iptables-persistent -y
sudo apt autoremove -y

步驟 4:安裝並設定 UFW#

安裝 UFW:

Terminal window
sudo apt install ufw -y

設定 UFW 規則(重要:必須先開放 SSH):

Terminal window
# 先開放 SSH(避免被鎖在外面)
sudo ufw allow ssh
# 開放其他需要的服務
sudo ufw allow http
sudo ufw allow https
# 或指定特定埠號
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

啟用 UFW:

Terminal window
sudo ufw enable

警告: 確保在啟用 UFW 之前已經開放 SSH (22 埠),否則會立即失去連線!

步驟 5:設定 OCI Security Lists#

重要: 即使在系統層級開放了埠號,仍需在 Oracle Cloud Console 設定 Security Lists:

  1. 登入 OCI Console
  2. 進入 Networking → Virtual Cloud Networks
  3. 選擇對應的 VCN → Security Lists
  4. 新增 Ingress Rules:
    • Source CIDR: 0.0.0.0/0 (或特定 IP 範圍)
    • IP Protocol: TCP
    • Destination Port Range: 80, 443 等

6.3 驗證設定#

  1. 登出後使用 SSH 金鑰重新連線

    Terminal window
    ssh username@server_ip
  2. 檢查時區設定

    Terminal window
    timedatectl
  3. 檢查 UFW 狀態

    Terminal window
    sudo ufw status verbose
  4. 檢查系統服務

    Terminal window
    systemctl status ssh
    systemctl status ufw
  5. 測試防火牆規則(從外部測試)

    Terminal window
    # 在本機執行
    curl -I http://your-server-ip

🎯 七、常見問題排除#

Q1: SSH 連線被拒絕#

可能原因:

  • SSH 服務未啟動
  • UFW 或 OCI Security Lists 阻擋 22 埠
  • 公鑰權限設定錯誤

解決方式:

Terminal window
# 確認 SSH 服務運作(Ubuntu 24.04 服務名稱為 ssh)
sudo systemctl status ssh
sudo systemctl start ssh
# 檢查 UFW 是否開放 SSH
sudo ufw status verbose
# 如果未開放,則開放 SSH
sudo ufw allow ssh
# 修正公鑰權限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Q2: 啟用 UFW 後立即失去連線#

原因: 在啟用 UFW 之前沒有先開放 SSH (22 埠)

解決方式: 如果還能透過 OCI Console 連線,執行:

Terminal window
# 停用 UFW
sudo ufw disable
# 開放 SSH
sudo ufw allow 22/tcp
# 重新啟用
sudo ufw enable

預防措施: 永遠記得在啟用防火牆前先開放 SSH!

Q3: UFW 規則已設定但服務仍無法存取#

可能原因: OCI Security Lists 沒有開放對應埠號

解決方式:

  1. 檢查系統層級防火牆

    Terminal window
    sudo ufw status numbered
  2. 登入 OCI Console 檢查 Security Lists

    • Networking → Virtual Cloud Networks
    • 選擇對應的 VCN
    • Security Lists → Ingress Rules
    • 確認有對應埠號的規則
  3. 測試埠號是否開放

    Terminal window
    # 在伺服器上監聽測試
    nc -l 8080
    # 在本機測試連線
    nc -zv your-server-ip 8080

Q4: iptables 規則與 UFW 衝突#

原因: 舊的 iptables 規則仍然存在

解決方式:

Terminal window
# 查看現有 iptables 規則
sudo iptables -L -n -v
# 完全清空 iptables
sudo iptables -F
sudo iptables -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
# 重啟 UFW
sudo ufw disable
sudo ufw enable

Q5: apt update 很慢或失敗#

可能原因: 預設的軟體源伺服器速度慢或網路問題

解決方式:

Terminal window
# 備份原始設定
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
# 更換為台灣的 mirror(選用)
sudo sed -i 's|http://archive.ubuntu.com|http://tw.archive.ubuntu.com|g' /etc/apt/sources.list
# 更新
sudo apt update

Q6: 時區設定後系統時間仍不正確#

原因: 可能需要同步網路時間

解決方式:

Terminal window
# 檢查 NTP 同步狀態
timedatectl status
# 啟用 NTP 同步
sudo timedatectl set-ntp true
# 手動同步時間(如果需要)
sudo apt install ntpdate -y
sudo ntpdate time.google.com

📚 八、進階資源#

官方文件:

實用工具:

安全性相關:


🎬 結語#

Oracle Cloud Ubuntu 24.04 伺服器的建立流程看似步驟繁多,但每一步都是建立安全穩定系統的基礎。從時區設定、系統更新、SSH 金鑰配置到防火牆管理,這些設定確保了伺服器能夠正確運作並保持安全防護。

重點回顧:

  1. ✅ 優先設定時區與更新系統
  2. ✅ 使用 SSH 金鑰而非密碼認證
  3. ✅ 清理舊的 iptables 規則後再啟用 UFW
  4. ✅ 啟用防火牆前務必先開放 SSH
  5. ✅ 記得同時設定 OCI Security Lists

建議將這些指令整理成自動化腳本,可參考以下架構:

#!/bin/bash
# Ubuntu 24.04 伺服器初始化腳本(for Oracle Cloud)
echo "開始初始化 Oracle Cloud Ubuntu 24.04 伺服器..."
# 設定時區
echo "設定時區為 Asia/Taipei..."
sudo timedatectl set-timezone Asia/Taipei
# 更新系統
echo "更新系統套件..."
sudo apt update && sudo apt upgrade -y
# 安裝工具
echo "安裝基礎工具..."
sudo apt install -y btop vim curl wget git
# 清理 Oracle Cloud 預設的 iptables 規則
echo "清理預設的 iptables 規則..."
sudo iptables -F
sudo iptables -X
sudo iptables -Z
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
# 移除 iptables-persistent(如果有安裝)
sudo apt remove iptables-persistent -y 2>/dev/null
# 安裝並設定 UFW
echo "安裝並設定 UFW 防火牆..."
sudo apt install ufw -y
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw --force enable
echo ""
echo "✅ 初始化完成!"
echo ""
echo "⚠️ 重要提醒:"
echo "1. 請確認 SSH 連線正常"
echo "2. 請記得在 OCI Console 設定 Security Lists"
echo "3. UFW 狀態:$(sudo ufw status | head -1)"

定期檢查安全性設定,確保伺服器始終處於最佳防護狀態。祝您使用愉快!

Oracle 雲端伺服器建立完整指南:Ubuntu 24.04 從零開始設定
https://laplusda.com/posts/oracle-server-setup-guide/
作者
Zero
發佈於
2025-11-04
許可協議
CC BY-NC-SA 4.0
這篇文章有幫助嗎?

回報錯字、失效連結,或告訴我你想看的延伸主題。