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 | 提供 guestmount、virt-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-manager 或 virsh 指令進行虛擬機管理。 |
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
