虾米一家
分享生活,分享技术,我们一直在努力

Proxmox VE 家庭 NAS 虚拟化部署:从裸金属到完整 HomeLab 的终极指南

为什么你需要在 NAS 上运行 Proxmox VE?

如果你家里有一台 NAS,大概率它只发挥了 30% 的潜力。群晖、威联通的 DSM 和 DSM 固然好用,但当你想要同时运行 Docker 容器、Windows 虚拟机、软路由、媒体服务器和智能家居中枢时,单一操作系统很快就会力不从心。

Proxmox VE(简称 PVE)是一款基于 Debian 的开源虚拟化平台,它让你把一台 NAS 变成一台”万能服务器”。在 PVE 之上,你可以同时运行多个虚拟机和容器,每个系统各司其职,互不干扰。这就是所谓的 HomeLab——用消费级硬件搭建一个功能完整的小型数据中心。

本文将带你从零开始,完成 Proxmox VE 的安装、配置和常用服务部署。全程基于实际操作经验,不玩虚的。

硬件准备:什么配置够用?

最低配置(入门级)

  • CPU:Intel 第 8 代及以上(支持 VT-d)或 AMD Ryzen 2000 系列及以上(支持 AMD-V)
  • 内存:16GB DDR4(8GB 给 PVE 宿主 + 8GB 给虚拟机)
  • 系统盘:128GB SSD(NVMe 优先)
  • 存储:2TB HDD(用于数据盘)
  • 网卡:千兆以太网(Intel i211/i350 芯片优先)

推荐配置(舒适级)

  • CPU:Intel 第 12 代 i5 或 AMD Ryzen 5 5600G
  • 内存:64GB DDR4(ECC 更佳)
  • 系统盘:512GB NVMe SSD(推荐 Samsung 980 PRO 或同级)
  • 存储:4TB × 2 HDD(组建 ZFS RAID 1)
  • 网卡:2.5GbE 或 Intel X520 万兆网卡(二手性价比极高)
  • 电源:300W 以上 80Plus 铜牌

关键注意事项

VT-d / AMD-Vi 必须开启:这是硬件直通的前提条件。在 BIOS 中找到 Intel VT-d 或 AMD IOMMU 选项并启用。如果你用的是笔记本或迷你主机,部分厂商会在 BIOS 中隐藏此选项,需要刷修改版 BIOS 才能解锁。

网卡选择:避免使用 Realtek 网卡芯片,PVE 对 Realtek 的支持不够稳定。Intel 网卡是首选,二手 Intel X520-DA2 万兆网卡仅需 50 元左右,性价比极高。

第一步:制作安装 U 盘

下载 Proxmox VE ISO

前往 Proxmox 官方下载页面,获取最新稳定版 ISO 镜像。截至 2026 年 5 月,最新版本为 Proxmox VE 8.2。

写入 U 盘

推荐使用 Rufus(Windows)或 balenaEtcher(跨平台)将 ISO 写入 U 盘。注意选择 DD 模式写入,而非默认的 ISO 模式,否则可能导致启动失败。

Rufus 设置要点:

  • 镜像模式选择:DD 模式
  • 分区类型:GPT
  • 目标系统类型:UEFI(非 CSM)

写入完成后,U 盘即成为可启动的 PVE 安装介质。

第二步:安装 Proxmox VE

BIOS 设置

插入 U 盘,启动目标机器,进入 BIOS 进行以下设置:

  1. 启动模式:设置为 UEFI(禁用 CSM/Legacy)
  2. VT-x / SVM:启用 CPU 虚拟化
  3. VT-d / AMD-Vi:启用 IOMMU(硬件直通必需)
  4. Secure Boot:建议禁用(避免驱动签名问题)
  5. 启动顺序:U 盘设为第一启动项

安装过程

从 U 盘启动后,选择 Install Proxmox VE,按照向导操作:

  1. 协议许可:阅读并接受 AGPL 许可协议
  2. 目标磁盘:选择系统盘(SSD),数据盘不要在此步骤选择
  3. 地区设置:Time Zone 选择 Asia/Shanghai,Keyboard 选择 English (US)
  4. 网络配置
    • Hostname:建议设置为 pve.localhomelab.local
    • IP 地址:设置静态 IP(如 192.168.x.x/24),避免 DHCP 导致 IP 变化
    • Gateway 和 DNS:填写路由器的 IP 地址
  5. 管理员账户:设置 root 密码(务必使用强密码)
  6. 确认安装:检查所有设置,点击 Install

安装完成

安装完成后重启,拔掉 U 盘。在浏览器中访问 https://你的IP:8006,即可进入 PVE Web 管理界面。

⚠️ 重要提示:首次访问会提示证书不安全,这是正常现象。PVE 使用自签名证书,点击”高级 → 继续访问”即可。生产环境建议后续配置 Let’s Encrypt 证书。

第三步:基础配置优化

移除企业级订阅提示

免费版 PVE 每次登录都会提示”没有有效订阅”,可以通过以下命令移除:

# 编辑 PVE 管理页面 JS 文件
nano /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

# 找到以下行(约在第 550 行):
# Ext.Msg.show({
#     title: gettext('No valid subscription'),
# ...
# 将 Ext.Msg.show 改为 Ext.Msg.noshow

# 或者直接执行一行命令替换:
sed -i.bak "s/data.status !== 'Active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
sed -i.bak "s/if (res === null || res === undefined || \!res || res\["data"]\["level"\])//g" /usr/share/perl5/PVE/API2/Subscription.pm

修改后刷新浏览器即可。

配置 No-Subscription 仓库

PVE 免费版不需要企业级订阅仓库,切换到 No-Subscription 仓库以获取免费更新:

# 移除企业仓库
rm /etc/apt/sources.list.d/pve-enterprise.list

# 添加 No-Subscription 仓库
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list

# 添加 Ceph 仓库(可选,用于分布式存储)
echo "deb http://download.proxmox.com/debian/ceph-quincy bookworm no-subscription" > /etc/apt/sources.list.d/ceph.list

# 更新系统
apt update && apt full-upgrade -y

配置 ZFS 存储(推荐)

如果你有第二块硬盘用于数据存储,强烈建议配置 ZFS 文件系统:

# 在 PVE Web 界面中操作:
# 数据中心 → 存储 → 添加 → ZFS

# 或者命令行创建 ZFS 池:
zpool create -f -o ashift=12 tank /dev/sdb

# 然后在 PVE 界面中添加 ZFS 存储:
# 存储 → 添加 → ZFS
# ID: tank
# ZFS pool: tank
# 内容: 镜像、容器、磁盘

ZFS 的优势在于数据完整性校验、快照功能和内置压缩。对于家庭 NAS 场景,ZFS 是最优选择。

配置网络桥接

PVE 默认创建 vmbr0 网桥,但如果你的机器有多个网卡,需要手动配置:

# 编辑网络配置
nano /etc/network/interfaces

# 示例:双网卡配置
auto vmbr0
iface vmbr0 inet static
    address 192.168.x.x/24
    gateway 192.168.x.1
    bridge-ports enp3s0
    bridge-stp off
    bridge-fd 0

# 第二个网卡用于虚拟机(不做路由)
auto vmbr1
iface vmbr1 inet manual
    bridge-ports enp4s0
    bridge-stp off
    bridge-fd 0

修改后执行 systemctl restart networking 使配置生效。

第四步:创建第一个虚拟机

上传 ISO 镜像

在 PVE Web 界面中:

  1. 选择 local 存储 → ISO 镜像 → 上传
  2. 上传你需要的操作系统 ISO(如 Ubuntu Server、Windows 11、OpenWrt 等)

创建 Ubuntu Server 虚拟机(示例)

以 Ubuntu 24.04 LTS 为例:

  1. 创建 VM:右上角”创建 VM”
  2. 基本设置
    • VM ID:100(自动分配或手动指定)
    • 名称:ubuntu-server
    • 标签:linux-server
  3. 操作系统
    • ISO 镜像:选择刚上传的 Ubuntu 24.04 ISO
    • 类型:Linux
    • 版本:5.4 – 2.6 Kernel
  4. 系统
    • 图形卡:Default(或 VMware compatible)
    • SCSI 控制器:VirtIO SCSI
    • BIOS:SeaBIOS(或 OVMF/UEFI 用于 Windows)
  5. 磁盘
    • 磁盘大小:32GB(SSD 存储)
    • SSD 模拟:勾选
    • IO 线程:勾选(提升性能)
  6. CPU
    • 插槽:1
    • 核心:4
    • 类型:host(获得最佳性能)
  7. 内存:4096 MB(4GB)
  8. 网络:vmbr0,VirtIO(半虚拟化驱动,性能最佳)
  9. 确认:检查设置后点击”完成”

安装 Ubuntu

启动虚拟机,打开 Console 窗口,按照 Ubuntu 安装向导操作。建议选择”Minimal VM”安装以节省资源。

第五步:部署核心服务

1. OpenWrt 软路由(推荐)

将 PVE 作为家庭网络的核心,用 OpenWrt 虚拟机替代传统路由器:

  • 配置:2 个网卡(WAN 接光猫/LAN,LAN 接交换机)
  • 资源:1 核 CPU + 512MB 内存
  • ISO 下载openwrt.org 下载 x86-64 的 ext4 镜像

OpenWrt 安装到虚拟机的方法:

# 下载 OpenWrt x86-64 镜像
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

# 导入为 PVE 磁盘
qm importdisk 101 openwrt-23.05.3-x86-64-generic-ext4-combined.img local-lvm

# 在 PVE 界面中将导入的磁盘附加到 VM 101 的 SCSI 控制器
# 设置启动顺序:SCSI 0 为第一启动项

2. TrueNAS Scale(NAS 系统)

如果你希望在 PVE 之上运行一个专业的 NAS 系统:

  • 配置:4 核 CPU + 16GB 内存 + 直通 SATA 控制器
  • 关键操作:需要直通 SATA 控制器或 HBA 卡给 TrueNAS VM

直通 SATA 控制器的步骤:

# 1. 启用 IOMMU
# 编辑 /etc/default/grub,在 GRUB_CMDLINE_LINUX_DEFAULT 中添加:
# intel_iommu=on iommu=pt
# 或 AMD 平台:
# amd_iommu=on iommu=pt

# 2. 更新 GRUB
update-grub

# 3. 加载 VFIO 模块
echo "vfio" >> /etc/modules
echo "vfio_iommu_type1" >> /etc/modules
echo "vfio_pci" >> /etc/modules
echo "vfio_virqfd" >> /etc/modules

# 4. 查找 SATA 控制器的 PCI 地址
lspci -nn | grep -i sata
# 输出示例:03:00.0 SATA controller [0106]: Advanced Micro Devices...

# 5. 在 PVE 界面中:虚拟机 → 硬件 → 添加 → PCI 设备
# 选择你的 SATA 控制器,勾选"所有功能"和"ROM 屏障"

3. Docker 容器服务

在 Ubuntu 虚拟机中部署 Docker,运行各种容器化服务:

# 一键安装 Docker
curl -fsSL https://get.docker.com | bash

# 安装 Docker Compose
apt install docker-compose-plugin -y

# 配置 Docker 自启动
systemctl enable docker

# 常用服务组合(docker-compose.yml 示例):
# - Home Assistant(智能家居)
# - Jellyfin(媒体服务器)
# - Nextcloud(私有云盘)
# - Nginx Proxy Manager(反向代理)
# - Portainer(Docker 管理面板)

一个典型的 docker-compose 配置:

version: '3.8'
services:
  homeassistant:
    container_name: home-assistant
    image: ghcr.io/home-assistant/home-assistant:stable
    restart: unless-stopped
    network_mode: host
    volumes:
      - ./homeassistant:/config
      - /etc/localtime:/etc/localtime:ro

  jellyfin:
    container_name: jellyfin
    image: jellyfin/jellyfin:latest
    restart: unless-stopped
    ports:
      - "8096:8096"
      - "8920:8920"
    volumes:
      - ./jellyfin/config:/config
      - ./jellyfin/cache:/cache
      - /mnt/media:/media:ro
    devices:
      - /dev/dri:/dev/dri  # GPU 硬件加速

  nginx-proxy-manager:
    container_name: npm
    image: jc21/nginx-proxy-manager:latest
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "81:81"
    volumes:
      - ./npm/data:/data
      - ./npm/letsencrypt:/etc/letsencrypt

第六步:硬件直通(PCIe Passthrough)

硬件直通是 PVE 最强大的功能之一。通过直通,虚拟机可以直接访问物理硬件,获得接近原生的性能。

直通 NVIDIA GPU(用于 AI 推理或视频转码)

# 1. 确认 GPU 在系统中
lspci | grep -i nvidia

# 2. 获取 GPU 的 PCI 地址和 Vendor ID
lspci -nn | grep -i nvidia
# 输出示例:01:00.0 VGA compatible controller [0300]: NVIDIA Corporation...

# 3. 绑定 GPU 到 VFIO 驱动
echo "options vfio-pci ids=10de:xxxx disable_vga=1" > /etc/modprobe.d/vfio.conf

# 4. 在 PVE 界面中:虚拟机 → 硬件 → 添加 → PCI 设备
# 选择你的 NVIDIA GPU,勾选"所有功能"、"ROM 屏障"和"主 GPU"(如需要)

# 5. 在虚拟机中安装 NVIDIA 驱动
# Ubuntu 中:
apt install linux-headers-$(uname -r) build-essential
# 然后下载 NVIDIA 官方驱动.run 文件安装

直通 USB 控制器(用于 Zigbee/Z-Wave 智能家居棒)

最简单的方式是在 PVE 界面中:虚拟机 → 硬件 → 添加 → USB 设备,直接选择对应的 USB 设备即可。

第七步:备份与恢复策略

PVE 内置备份(VZDump)

PVE 自带备份工具 VZDump,支持完整虚拟机备份:

# 在 PVE 界面中配置备份:
# 数据中心 → 备份 → 添加

# 推荐配置:
# 存储:选择备份存储位置(建议外接 USB 硬盘或 NFS 共享)
# 模式:快照(Snapshot,虚拟机不中断)
# 压缩:LZO(速度快)或 ZSTD(压缩率高)
# 排除的磁盘:数据盘可以不备份(节省空间)

# 手动备份单个 VM:
vzdump 100 --mode snapshot --compress lzo

# 备份文件位置:/var/lib/vz/dump/

定时备份策略

建议配置自动备份计划:

  • 关键 VM(路由器、DNS):每日备份
  • 一般 VM(Web 服务器、数据库):每周备份
  • 测试 VM:不备份或手动备份

异地备份

通过 NFS 或 SMB 将备份文件同步到外部存储:

# 挂载 NFS 共享作为备份存储
mkdir -p /mnt/pve/nfs-backup
mount -t nfs 192.168.x.x:/volume1/pve-backup /mnt/pve-backup

# 在 PVE 界面中添加 NFS 存储:
# 存储 → 添加 → NFS
# ID: nfs-backup
# 服务器: 192.168.x.x
# 导出路径: /volume1/pve-backup
# 内容: 备份

常见问题排查

问题 1:虚拟机无法启动,报错 “kvm permission denied”

原因:CPU 虚拟化未启用或 IOMMU 未正确配置。

解决:进入 BIOS 启用 VT-x/VT-d 或 SVM/AMD-V,确认 GRUB 中 IOMMU 参数正确。

问题 2:网络不通,虚拟机无法获取 IP

原因:网桥配置错误或防火墙规则阻止 DHCP。

解决:检查 /etc/network/interfaces 中 vmbr0 的配置,确认 bridge-ports 指向正确的物理网卡。使用 brctl show 查看网桥状态。

问题 3:ZFS 池导入失败

原因:磁盘被其他系统占用或 ZFS 版本不兼容。

解决zpool import -f tank 强制导入。如果仍然失败,检查磁盘 SMART 状态确认硬件健康。

问题 4:硬件直通后宿主机无法使用设备

原因:设备被 VFIO 驱动独占。

解决:这是预期行为。直通后设备只能由虚拟机使用。如需宿主机也使用,考虑使用 GPU 共享方案(如 NVIDIA vGPU 或 GPU 虚拟化)。

总结:HomeLab 的最佳实践

经过几个月的实践,我总结出以下 HomeLab 最佳实践:

  1. 系统盘和数据盘分离:PVE 和虚拟机系统盘用 SSD,数据存储用 HDD + ZFS RAID
  2. 网络规划先行:规划好 VLAN 和子网,避免后期网络混乱
  3. 备份重于一切:再好的 RAID 也不如定期备份可靠
  4. 监控不可少:部署 Prometheus + Grafana 监控硬件状态和虚拟机性能
  5. 文档化:记录每个虚拟机的用途、配置和 IP 地址,避免”遗忘型技术债”
  6. 功耗控制:选择低功耗硬件,24/7 运行的电费不容忽视
  7. 逐步扩展:不要一开始就追求完美架构,从最小可用配置开始,逐步迭代

Proxmox VE 让一台普通的 NAS 变成了功能强大的家庭数据中心。从软路由到智能家居,从媒体服务器到开发测试环境,一切尽在掌控。开始搭建你的 HomeLab 吧,这绝对是你今年最值得投入的技术项目。

赞(0) 打赏
未经允许不得转载:虾米生活分享 » Proxmox VE 家庭 NAS 虚拟化部署:从裸金属到完整 HomeLab 的终极指南

评论 抢沙发

评论前必须登录!

 

虾米一家,生活分享!

关于我们收藏本站

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏