版权所有

全文内容均来自(或许自己会加几行备注)吉吉@知乎 的专栏 工程师 AIO 手册:打造全能家庭服务器,本文仅作为个人备份,如侵权请联系删除。


image.png

⚡ 快速通关:如果你只想“抄作业”

很多朋友入坑 All in One (AIO) 都是冲着“一台机器解决所有需求”去的,但往往因为架构不合理,最后变成了“一人下载全家断网”的噩梦。

为了节省你的时间,我将这套历经不断迭代、兼顾性能与家庭和谐的工程师方案直接总结如下:

1. 核心选型结论表

组件推荐方案IP 地址 (静态)核心价值
底座 (OS)PVE (Proxmox VE)192.168.88.1基于 Debian,硬件兼容性近乎无敌。
主路由iKuai (爱快)192.168.88.2负责拨号、DHCP 和流量监控,稳如老狗。
旁路由OpenWrt (iStoreOS)192.168.88.3负责魔法与插件,实现“功能解耦”。
存储黑群晖 (DSM)192.168.88.4提供最成熟的手机 APP 和照片管理生态。
应用PVE LXC 容器192.168.88.5运行 Docker 的最佳姿势,资源损耗极低。
应急Win10 LTSC192.168.88.10最后的保命跳板,用于远程调试网络故障。

**注:**IP 地址的网段大家自行修改,本文只是举例说明

2. 架构设计“三原则”

  • 各司其职(解耦): 拨号归爱快,魔法归 OpenWrt,存储归群晖,各种 docker 服务归 LXC 容器。
  • 故障隔离: 旁路由崩了,全家依然能正常上网,更不能导致核心数据丢失。
  • 静默分流: 普通设备走主网关,生产力工具通过 DHCP 自动分配旁路网关。

一、 前言:工程师的 AIO 观 —— “架构决定上限”

如果你已经看完了上面的结论,觉得正合你意,那么接下来将为你深度拆解这些结论背后的技术博弈

作为一名软件工程师,我构建这套方案的核心哲学只有两个字:解耦。在软件设计中,高内聚低耦合是金科玉律;在家庭网络中,这代表着即便你半夜折腾插件导致旁路由死机,你老婆依然能流畅地刷着短视频,你父母依然能正常看电视。

本篇文章将从虚拟化底层、流量制导逻辑、以及工业级 IP 规划三个维度,带你从“玩机器”跨越到“系统工程”。


二、 虚拟化底座:PVE 为什么是 AIO 的“唯一真神”?

要在物理主机上运行多个系统,我们需要一个“底座”,即 Hypervisor(虚拟化监视器)。目前市面上主流的方案有三类:闭源商业派(ESXi)、磁盘阵列派(UNRAID)和开源底层派(PVE)。

1. 三大平台的深度博弈

  • ESXi (VMware): 它是工业界的标杆,极其稳健,但它不是为“杂牌”小主机准备的。它的驱动库非常封闭,如果你的网卡不在它的白名单里,你可能连第一步安装都过不去。对于追求灵活性的工程师来说,这种“闭源黑盒”的束缚感非常不友好。
  • UNRAID: 它的核心卖点是极其灵活的磁盘阵列(不同容量的盘可以随意组合),对 NAS 玩家非常友好。但在虚拟化性能和网络管理上,它比 PVE 弱了一个量级。而且它是收费系统,虽然有特殊版本,但在底座上使用非官方授权软件,本身就违背了稳定性的初衷。
  • PVE (Proxmox Virtual Environment):
  • 基于 Debian 的纯正血统: 这意味着它本质上就是一个 Linux 服务器。只要是 Linux 能驱动的硬件,PVE 都能用,硬件兼容性近乎无限。
  • KVM 与 LXC 的双剑合璧: PVE 同时支持重量级的 KVM 虚拟机和轻量级的 LXC 容器。这种灵活性是 ESXi 不具备的。
  • 工程师的掌控感: 你可以直接进 Shell。当 Web 界面卡死或配置出错时,命令行是你最后的避风港。

2. 硬核技术点:KVM 与 LXC 的性能损耗对比

在 PVE 中,你有两种方式跑应用:

  1. VM (KVM 虚拟机): 为 iKuai、群晖、Windows 准备。它模拟完整的硬件,安全性最高,但资源开销大(因为要运行完整的内核)。
  2. LXC (Linux 容器): 专门用来跑 Docker 或轻量级的服务。它直接共享 PVE 的内核,不需要模拟硬件,响应速度快。

实验数据: 在相同的硬件环境下,运行一个普通的 Nginx 服务,LXC 的内存占用通常只有 VM 的十分之一,磁盘 I/O 损耗几乎可以忽略不计。这就是为什么我坚持“Docker 必须进 LXC”的原因。

image.png

image.png


三、 路由系统:iKuai + OpenWrt 的“黄金平衡”

很多人问过我:两个都是路由系统,只装一个 OpenWrt 不行吗?

作为一个被全家人“监督”网络的工程师,我的回答是:为了家庭和谐,必须双路由。

1. iKuai:不可替代的“门神”

iKuai 的核心强项在于其工业级的网络协议栈优化

  • 拨号稳定性: 它的拨号重连机制和多拨能力极其强悍。
  • DPI 流控: 它能精准识别出家里哪台机器在下载电影,哪台在打游戏,并实现动态限速。
  • DHCP 管理: 在我的架构里,iKuai 是唯一的 DHCP 服务器。它负责分配家里所有设备的 IP,这个权限必须交给最稳的系统,同样 IPV6 地址的分配也是轻松拿捏,可以让家里每台设备获得 IPV6 地址,这可是个好东西。

image.png

2. OpenWrt (iStoreOS):灵动的“翻译官”

OpenWrt 在这里的角色是“旁路网关”,它只负责处理那些需要“魔法”加速或去广告的特殊流量。

  • 为什么推 iStoreOS? 原生 OpenWrt 的配置门槛很高,真不是新手们可以轻松搞定的。一些大神打好的包,不是找不到,就是来源不明,要不就是停更,版本太低等等。iStoreOS 把它“人话化”了,应用商店极其丰富,安装插件不再需要敲复杂的代码,自带很少的常用插件,官网下载安心有保障。
  • 解耦的精妙: 在我的配置里,OpenWrt 是不需要拨号的。即使你在折腾插件时导致它死机了,家里的基础网络(微信、电视、父母的手机)完全不会断,因为它们依然走 iKuai 的网关。

image.png


四、 存储与应用:各司其职的模块化设计

1. 黑群晖 (DSM):只做存储,不做杂活

群晖的强大在于它的移动端 APP 生态(Photos、Drive、Video Station)。

  • 原则: 在 AIO 环境下,不要在群晖里跑 Docker,也不要在群晖里跑虚拟机。
  • 理由: 群晖本质上是个存储服务器。如果你给它加了太多负荷,会导致它的磁盘休眠失效,甚至影响文件同步的稳定性。让它安安静静地做个私有云,这才是它的宿命。真的,没有什么比稳定可靠更让人安心的了。

image.png

2. Windows 10 LTSC:你的内网“应急跳板”

为什么要给 AIO 塞一个 Windows?

  • 保命手段: 当你在外地,发现家里网络配置出错导致无法访问 PVE 后台,服务中断时,通过 RDP 远程桌面连接这个 Windows 虚拟机,你就可以在内网环境下通过图形化界面修复路由配置。
  • 兼容性: 某些特定的网盘下载工具或特定的定时任务,Windows 的生态依然是不可替代的。

image.png


五、 第一阶段小结:站稳前行

架构设计的本质是在“性能、稳定性、易用性”之间寻找平衡。

  • 底座选 PVE 是为了兼容性和掌控感;
  • 双路由设计 是为了实现故障隔离,保证家庭和谐;
  • LXC 跑 Docker 是为了追求极致的性能效率。

地基已经打好,下一阶段我们将深入到最硬核的流量流向分析与 IP 地址工程。我会带你拆解一个数据包是如何在这些虚拟机之间穿梭的。

如果说阶段一是在挑选家具,那么阶段二就是在布水电路。在 AIO 环境下,流量如何在虚拟网桥、物理网卡、主路由与旁路由之间穿梭,决定了你网络的延迟与稳定性。


六、 流量制解:数据包在 AIO 内部的“奇幻漂流”

在 AIO 架构中,最让新手头疼的就是“明明网接好了,为什么死活上不了网”。要解决这个问题,必须理解虚拟网桥的工作原理。

1. 物理网卡与虚拟网桥:vmbr0 的角色

在 PVE 中,物理网卡(如 eth0)通常不直接分配给虚拟机,而是绑定在一个虚拟网桥(如 vmbr0)上。

  • 你可以把 vmbr0 想象成一台接在小主机内部的“虚拟交换机”。
  • 所有的虚拟机(iKuai, OpenWrt, NAS)都像插在这台虚拟交换机上的电脑。
  • 流量路径: 当你的手机通过 WiFi 请求一个网页时,流量进入物理网卡 传给 vmbr0  分发给 iKuai 的虚拟网口。

2. 双路由下的“旁路”流量转发逻辑

这是本方案的灵魂。我们要实现的是**“按需魔法”**,而不是全家魔法。

  • 流量第一站:iKuai(网关 192.168.88.2)
  • iKuai 负责处理所有基础流量。如果是普通的网页访问,iKuai 直接通过光猫发出去。
  • 流量第二站:OpenWrt(网关 192.168.88.3)
  • 当你指定的设备(如电脑)发出请求时,iKuai 会根据你设置的 DHCP 策略,告诉电脑:“你的网关不是我,而是 192.168.88.3”。
  • 此时,电脑的数据包会先流向 OpenWrt,经过插件脱敏/加速处理后,再由 OpenWrt 转交给 iKuai,最后出海。

image.png


七、 IP 地址空间工程:工程师的“标准化”设计

在 AIO 系统里,随意的 IP 分配是后期运维的噩梦。我们需要一套工业级的规划方案,确保基础设施、服务容器和移动设备互不干扰。

1. 192.168.88.x 网段精细化定义

我建议将整个第四段的地址划分为四个功能区:

  • 【核心基础设施区】.1 - .10
  • .1:PVE 宿主机管理地址。
  • .2:iKuai 主路由(DHCP 服务端)。
  • .3:OpenWrt 旁路由(魔法中转)。
  • .4:黑群晖存储(核心数据)。
  • .10:Win10 (跳板机)
  • 要求: 必须在系统中手动指定静态 IP,绝不能靠 DHCP 获取。
  • 【服务器与容器区】.11 - .50
  • 用于 Docker 宿主机、HomeAssistant 容器、导航站服务等。
  • 要求: 同样建议手动指定,方便在外部通过端口转发精准定位。
  • 【预留扩展区】.51 - .99
  • 为未来增加的物理设备(如第二台 NAS、智能监控录像机)预留。
  • 【动态地址池区】.100 - .254
  • 这是 iKuai DHCP 服务管辖的领地。
  • 所有手机、平板、IoT 智能家居接入时,会自动从这个区间捞取 IP。

八、 DHCP 高级应用:实现“无感分流”的黑科技

如何让你的电脑自动“起飞”,而让父母的手机保持“纯净”?答案就在 iKuai 的 DHCP 静态分配 功能中。

1. 传统做法的弊端

很多人在电脑、手机上手动修改网关和 DNS。这太麻烦了,而且一旦你带手机出门连接到其他的 WIFI 手动设置的静态 IP 可能会导致无法上网,回来还得改。

2. 工程师做法:DHCP 策略下发

手机不做任何网络设置的修改,在 iKuai 的 DHCP 设置里,找到静态分配

锁定 MAC 地址: 找到需要魔法的设备或手机的 MAC 地址。

自定义配置: 在该 MAC 地址的分配规则里,手动填入: 

  • 网关: 192.168.88.3(即 OpenWrt 的地址)。
  • DNS: 192.168.88.3(让 OpenWrt 负责域名解析,防污染)。

结果: 当你的电脑接入 WiFi 时,iKuai 会识别出这是“高级用户”,并下发那套特殊的网关。而其他设备收到的依然是默认的 192.168.88.2 网关。从而实现全家无感上网,特殊设备也同样无感加速出海。

image.png


九、 第二阶段小结:灵活操控

理解了虚拟网桥的交换逻辑基于 MAC 地址的网关指派,你就掌握了 AIO 网络的心脏。

  • PVE 管理后台 是你的上帝视角;
  • iKuai 是你家庭网络的流量交警;
  • OpenWrt 则是你按需开启的特种通道。

这套架构在保证了性能最大化的同时,给了你最灵活的流量操控权。

我们进入最后的收尾阶段——第三阶段:存储进化、容灾体系与 Checklist

这一部分是关于如何守护你的“数字资产”,以及在极端情况下如何自救。只有做好了灾备,你的 AIO 才算真正完工。


十、 存储架构:从“能存东西”到“工业级冗余”

在 AIO 体系中,存储是整机压力最大、也是最不容出错的部分。

1. 黑群晖 (DSM) 的部署策略

虽然群晖系统生态无敌,但在虚拟机里运行它,必须解决磁盘 IO 瓶颈。

  • 不要用虚拟磁盘(Vritual Disk): 尽量避免在 PVE 里创建巨大的 .qcow2 文件给群晖用,这会产生双重文件系统损耗。
  • 推荐 RDM 磁盘直通: 通过 PVE 命令行将物理硬盘的 ID 直接映射给群晖虚拟机。这样群晖能直接读取硬盘的 S.M.A.R.T 信息,性能几乎等同于物理机。
  • 注: 涉及黑群晖系统内容仅供技术交流及实验研究,建议支持正版。

image.png

2. 为什么 Docker 必须放在 PVE LXC 里?

在第一阶段中我们提到了 LXC 的轻量化,这里从存储角度再深挖一下:

  • 解耦逻辑: 如果你把 Docker 放在群晖里,群晖一旦崩溃或需要迁移,你的所有应用(如 HomeAssistant、Jellyfin)都会停摆。
  • 性能优势: PVE 的 LXC 容器可以直接挂载宿主机的目录,IO 延迟极低,非常适合运行高频读写的数据库服务。不要误解 LXC 只能安装 Docker,它本身其实就是类似 Docker 的容器,可以安装各种应用。只不过很多应用的 Docker 版使用起来确实很方便。

image.png


十、 容灾逻辑:工程师的“最后一道防线”

AIO 最大的宿命是“一挂全挂”。作为工程师,我们必须有备无患。

1. Win10 LTSC:你的内网“生存跳板”

在 AIO 主机里塞一个 Windows 10 LTSC(长期服务版)是绝对的保命操作。

  • 场景模拟: 当你人在外地,发现家里网络配置出错导致无法远程访问 PVE 后台时,如果你的 Win10 虚拟机开启了远程桌面(RDP),你可以通过 IPV6 绑定的域名或者内网穿透连上 Win10 来解决问题。
  • 价值所在: 在 Win10 的浏览器里访问 192.168.88.1(PVE 地址)或 192.168.88.2(iKuai 地址),你就能以“内网用户”的身份修复配置。它就像是留在家里的一台永久在线的调试电脑。
  • **系统选择:**为什么没有选择 Win11 是因为这个 Windows 不是咱们的主力机,而是方便调试 AIO 环境和挂载一些定时任务,下载云盘资源之类的操作,所以,虚拟机无需给它分配过多的资源,只要够用稳定即可。

2. 3-2-1 备份原则的家庭落地

  • 3 份备份: 核心数据(全家照片、个人代码)至少有三个副本。
  • 2 种介质: 不要全存在 AIO 的机械硬盘里,至少有一份在外部移动硬盘或 SSD。
  • 1 份异地: 利用群晖的 Cloud Sync 定期将加密后的核心数据同步到公有云盘。

全篇总结:架构设计的终点是“无感”

这篇文章从底层选型讲到流量制导,再到存储容灾,逻辑其实只有一个:让复杂的系统各司其职。

一个优秀的 AIO 架构,在配置完成后应该是“沉默”的。你不再需要每天登录后台查看状态,全家人也不需要知道什么是网关。当你在 5G 网络下丝滑地打开家里的相册,或者在公司远程唤醒家里的电脑时,这套架构的价值才真正体现。


✍️ 工程师的部署 Checklist(建议截图保存)

在正式开始下一章的安装实战前,请确认你的设计方案符合以下清单:

  • 静态 IP 冲突检查: 核心设备 IP(.1 - .10)是否已在 iKuai 的地址池中排除?
  • 故障隔离验证: 关闭 OpenWrt 旁路由,确认普通手机依然能正常浏览网页。
  • 跳板机权限: Win10 虚拟机的远程桌面是否已开启,且防火墙已放行?
  • 存储安全: 核心数据盘是否已经考虑了直通方案,并规划了异地备份路径?
  • 硬件准备: 物理网口是否已标记清楚?(建议贴纸标注 LAN1/WAN1)。

下一篇预告:

《系列 03:【实操篇】PVE 安装实战 —— 从 U 盘启动到配置第一块虚拟网卡》