Featured image of post 在 Proxmox VE 上安裝 OpenWrt

在 Proxmox VE 上安裝 OpenWrt

在 Proxmox VE 上安裝 OpenWrt 作為虛擬機器 (KVM),以獲得一個功能強大的路由器。可以隨時還原到特定狀態,方便測試和學習,也可以用於實際環境中。

最後更新
約 1509 字

前言

OpenWrt 是一款開源的 Linux 操作系統,專為嵌入式設備設計,如路由器。它提供了一個強大的包管理系統,允許您自定義您的設備,並為您的設備新增新功能。 可以通過安裝 OpenWrt 來獲得一個功能強大的路由器,配合 Proxmox VE 作為虛擬化平台,可以隨時還原到特定時間點的狀態,隨便弄都不怕搞壞了。

以下是手動安裝 OpenWrt 的步驟,如果想要更快速的安裝,可以使用 Helper-Scripts 的方式安裝 OpenWrt。

使用 Helper-Scripts 安裝 OpenWrt

自動安裝 OpenWrt 的腳本,可以在 Proxmox VE 上快速安裝 OpenWrt,只需要執行以下命令:

1
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/openwrt.sh)"

以下是手動安裝 OpenWrt 的步驟。

KVM 虛擬機器的限制

留意本文採用了 KVM 技術的虛擬機器,可以最大程度地分開虛擬機器和 Host 系統,可是會導致少許性能上的損失。

由於 KVM 技術的限制,無法直接存取 Host 的硬體,所以無法直接使用 Host 的網卡,需要透過 virtio 網卡模擬,或者直通 Host 的網卡。 也無法使用 lm-sensors 等硬體監控工具。

如果需要這些功能,可以考慮使用 LXC 技術的虛擬機器。 LXC 技術的虛擬機器可以直接存取 Host 的硬體,性能更好,但是安全性較差。

在 Proxmox VE 上安裝 OpenWrt

由於 OpenWRT 提供的映像檔案是為嵌入式設備設計的,都是直接燒錄到設備上後就可以直接使用,沒有一個「安裝」的過程,沒有「下一步」再「下一步」的過程,是即開即用的。

所以需要先將 OpenWRT 映像檔案先上傳到 Proxmox VE 上,然後直接將其作為虛擬機器硬碟使用。

下載 OpenWrt 映像檔案

首先,訪問 OpenWrt 官方網站 下載 OpenWrt 的映像檔案。您可以根據您的需求選擇不同的版本和平台。

OpenWrt 下載頁面

要留意 OpenWRT 提供兩種不同的版本,一個是 ext4 格式的,另一個是 squashfs 格式的。

ext4 格式的 rootfs 具有靈活性,能夠按需擴展磁碟空間,這是 squashfs 格式所無法做到的。

squashfs 格式的 rootfs 則可以進行系統重設,恢復出廠設定,這是 ext4 格式所不能提供的。

考慮到這些關鍵因素,我們在這裡選擇了 openwrt-23.05.3-x86-64-generic-ext4-combined.img.gz

可以直接在 Proxmox VE 上下載及解壓 OpenWrt 映像檔案:

1
2
3
cd /var/lib/vz/template/iso
wget https://downloads.openwrt.org/releases/23.05.3/targets/x86/64/openwrt-23.05.3-x86-64-generic-ext4-combined.img.gz
gunzip openwrt-23.05.3-x86-64-generic-ext4-combined.img.gz

也可以在 Web 介面,Datacenter -> 選擇節點 -> 存儲(local) -> ISO 映像 中上傳 OpenWrt 映像檔案。

在 Proxmox VE 上傳 OpenWrt 映像檔案

創建虛擬機器

登錄 Proxmox VE 的 Web 介面,並創建一個新的虛擬機器。

設定

在右上角先按「Create VM」,然後在對話框下方啟用 Advanced,並按照以下設定新增虛擬機器:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
General:
  VMID: 100 (隨便選一個號碼,記住這個 ID,後面會用到)
  Name: OpenWrt
  Sart at boot: ❎ (只是暫時不要)
OS:
  Do not use any media: ☑️
  Guest OS:
    Type: Linux
    Version: Linux 5.X/4.X/3.X/2.6
System:
  QEMU Agent: ☑️
Disks:
  (刪除硬碟)
CPU:
  Cores: 按照需求設定 (可以按照 Host 的 CPU 核心數設定)
  Type: kvm64
Memory:
  Memory: 按照需求設定 (單純做路由功能,大概 512MB 就夠,如果需要更多功能,可以設定更多)
  Ballooning Device: ☑️ (也可以打開 Balloning Device,這樣可以動態調整記憶體,可以設定更多的記憶體)
Network:
  Model: virtio (這是最快的網卡模型)
  Bridge: vmbr0 (這是 Proxmox VE 的橋接網卡,可以連接到 Host 的網路)
  MAC Address: (自動產生)
  Firewall: 
Confirm:
  Start after created: 

建立後在 Hardware

將 Openwrt 的鏡像匯入到虛擬機器中:

在 Web 介面,在左邊選擇節點,選擇 Shell,然後執行以下命令,當中的 100 是剛才虛擬機器的 ID,local-lvm 是存儲的名稱,可以根據實際情況修改:

1
qm importdisk 100 /var/lib/vz/template/iso/openwrt-22.03.5-x86-64-generic-ext4-combined-efi.img local-lvm

前往虛擬機器的 Hardware 頁面,然後新增剛才掛載的硬碟。

將 OpenWrt 的硬碟掛載到虛擬機器上

在 Web 介面,選擇剛才創建的虛擬機器,然後選擇 Hardware 選擇剛才匯入的 OpenWrt 映像檔案,掛載到虛擬機器上,並啟用 SSD emulation

刪除無任何作用的光碟機後,新增網卡,如果是選擇以直通方式連接,就在 Add -> PCI Device 中選擇 Raw Device,將需要用到的網卡都加進去。

要留意不要加到用於管理 PVE 的網卡,否則在 VM 開機後,PVE 會立即斷線。

這也是為什麼在新增虛擬機器時暫時不要自動啟動 OpenWRT 的原因。如果設定錯誤,重新開機就可以正常連接到 PVE。

在所有設定完成後,可以在 Options -> Start at booot 設定開機自動啟動。


使用 Hugo 建立
主題 StackJimmy 設計