跳到主內容

Linux 虛擬化環境安裝與建構流程

  由於工作上需要熟悉 Linux 虛擬化與商用虛擬化平台的差異,BUBU 在本篇中記錄了如何在 Linux 系統上安裝並啟用虛擬化環境的過程,作為後續實驗與測試的基礎參考。

運行環境


  環境都是在 「Proxmox VE 」 虛擬系統上架設,都是以 「 LXC 」模式為主,除非有特殊狀況會告知使用 「 VM 」 模式

  • 系統環境: Rocky Linux 9.6

安裝過程


虛擬化套件安裝


  在 Linux 環境中建立虛擬化平台前,必須先安裝核心虛擬化元件與管理工具。以下將分別說明各套件用途,並提供安裝指令。


  • 安裝虛擬化必要套件,自動安裝一整個官方定義的套件群組,包含核心、驅動、網路、儲存、管理、監控、UEFI 支援等。
sudo dnf group install -y "Virtualization Host"
  • 安裝其他輔助與管理套件
sudo dnf install -y epel-release
sudo dnf install -y virt-top libguestfs-tools bridge-utils
套件名稱 功能說明
epel-release 啟用 EPEL(Extra Packages for Enterprise Linux)倉庫,提供額外開源套件來源。
bridge-utils 提供 brctl 工具,用於建立與管理 Linux 網路橋接(bridge),常用於虛擬機網路連線設定。
virt-top 類似 top 指令的虛擬機監控工具,可即時顯示各虛擬機的 CPU、記憶體等資源使用狀況。
libguestfs-tools 提供 guestmountvirt-cat 等工具,可直接存取或修改虛擬磁碟映像檔(如 qcow2、raw)。
啟動與設定虛擬化服務

  完成套件安裝後,接下來需啟動 libvirtd 服務以啟用虛擬化管理層,並設定使用者權限讓非 root 帳號也能操作虛擬機。


  • 啟動虛擬化服務
sudo systemctl enable --now libvirtd
  • 確認服務是否正常啟動
systemctl status libvirtd
  • 新增使用者操作權限
sudo usermod -aG libvirt $USER
newgrp libvirt
指令 功能說明
usermod -aG libvirt $USER 將目前使用者加入 libvirt 群組,允許透過 virt-managervirsh 指令進行虛擬機管理。
newgrp libvirt 立即套用群組權限變更,無須重新登入即可生效。

建議: 若要讓權限永久生效,建議在執行完上述指令後重新登出再登入一次。

網路設定


建立虛擬化網路橋接介面(Bridge)

  為了讓虛擬機能與外部網路直接通訊(如實體機般取得 IP、可被其他主機連線),需要建立一個 橋接網路(Bridge Network)
以下範例示範如何使用 nmcli 指令建立橋接介面 br0,並將實體網卡(例如 ens33)綁定至該橋接介面。


  • 查看目前母機的網路資訊
sudo nmcli connection show

  • 建立橋接介面
sudo nmcli connection add type bridge ifname br0 con-name br0

說明:

參數 功能
type bridge 指定建立的網路類型為橋接(bridge)。
con-name br0 設定連線名稱為 br0(可自訂)。
ifname br0 指定橋接介面名稱為 br0

用途:此指令建立一個虛擬橋接介面 br0,作為虛擬機與實體網路間的橋梁。

  • 將實體網卡加入橋接介面
sudo nmcli connection add type ethernet ifname ens18 master br0

說明:

參數 功能
type ethernet 指定要加入的介面為乙太網路類型。
ifname ens18 指定實體網卡名稱。
master br0 指定該網卡要附屬於哪個橋接介面。

用途:此步驟將實體網卡(ens33)綁定到橋接介面 br0,讓虛擬機透過 br0 對外連線。

  • 設定橋接介面取得 IP
sudo nmcli connection modify br0 ipv4.method auto

說明:

參數 功能
ipv4.method auto 設定橋接介面透過 DHCP 自動取得 IP。

用途:橋接介面 br0 將取代原本的實體網卡成為主要對外通訊介面,因此需設定為自動取得 IP。

  • 啟用橋接介面
nmcli connection down ens18 && nmcli connection up br0

說明:

參數 功能
connection up br0 啟用並立即套用橋接介面的設定。

用途:啟用後,br0 會開始運作並取得 IP 位址。

補充說明:

  • 橋接介面建立後,原本的實體網卡 ens33 不再直接持有 IP。
  • 虛擬機在設定網路時選擇使用 br0,即可與外部網路通訊。
設定橋接介面為靜態 IP 模式

  在伺服器環境中,若希望橋接介面 br0 使用固定 IP(例如用於虛擬化主機或叢集節點),可以將網路設定為 靜態 IP 模式(Manual Mode)
以下指令示範如何以 nmcli 設定 br0 的靜態 IP、閘道與 DNS。


  • 設定靜態 IP 位址
sudo nmcli connection modify br0 ipv4.addresses 192.168.1.100/24

說明:

參數 功能
ipv4.addresses 設定 IPv4 位址與子網遮罩。格式為 IP/Prefix
192.168.1.100/24 表示 IP 為 192.168.1.100,子網遮罩為 255.255.255.0

用途:為橋接介面 br0 指定固定 IP 位址,供主機對外通訊使用。

  • 設定預設閘道(Gateway)
sudo nmcli connection modify br0 ipv4.gateway 192.168.1.1

說明:

參數 功能
ipv4.gateway 指定預設網關(Gateway)IP 位址。
192.168.1.1 通常為內部網段的路由器或防火牆 IP。

用途:讓主機可透過該閘道連線至其他網段或外部網際網路。

  • 設定 DNS 伺服器
sudo nmcli connection modify br0 ipv4.dns "8.8.8.8 1.1.1.1"

說明:

參數 功能
ipv4.dns 設定主機的 DNS 伺服器(可設定多個,以空格分隔)。
"8.8.8.8 1.1.1.1" 分別為 Google DNS 與 Cloudflare DNS。

用途:指定主機解析網域名稱時所使用的 DNS 伺服器。

  • 將 IP 模式設為手動(Manual)
sudo nmcli connection modify br0 ipv4.method manual

說明:

參數 功能
ipv4.method manual 指定 IPv4 設定方式為手動(即靜態 IP 模式)。

用途:取消 DHCP 自動取得設定,改為使用前面所設定的固定 IP、閘道與 DNS。

  • 套用設定變更
sudo nmcli connection down br0 && sudo nmcli connection up br0
刪除系統預設建立網卡

  • 停止預設網路
sudo virsh net-destroy default
  • 移除預設網路設定
sudo virsh net-undefine default
  • 看查設定
nmcli connection show

補充說明


備註





參考相關網頁