2026-02-01
#Tech

如何用家用 mac 配置虚拟机集群?

如何用家用 mac 配置虚拟机集群?

最近入手了 M4 Pro 的 Macbook Pro,于是决定对我的旧 M4 Mac Mini 进行一次彻底的重构。目标很明确:在一个极其紧凑的机身内,运行一套复杂的虚拟化集群,同时兼顾大容量数据存储和公网访问能力,榨干每一分硬件性能。

以及放个广子 -> 配置我的新 Mac

这是我的架构设计方案,记录一下从零开始的构建思路。具体的操作细节就不说了,想尝试的话直接按照这个思路问 LLM 即可。

0. 核心需求与硬件挑战

我的 Mac Mini 内置硬盘仅有 250GB(性价比之王),这对我要跑的服务来说捉襟见肘。但我手头有一个 2TB 的高性能外接硬盘。

我的目标是:

  • 虚拟化集群:运行 8 台 UTM 虚拟机(4 台高性能,4 台低能耗)。
  • 存储分离:数据与系统分离,内置硬盘仅做宿主系统,外接硬盘承载 VM 和数据。
  • 网络穿透:在没有固定公网 IPv4 的情况下,实现 80/443 标准端口的公网访问。
  • 无感体验:全自动开机、解锁、服务自启。

1. 存储架构

为了保证系统在崩溃重装时数据不丢,我采用了严格的物理隔离策略。

  • 内置 SSD (250GB):

    • Role: Host OS
    • 仅安装 macOS 系统、UTM 主程序以及必要的系统工具。保持绝对的纯净,随时可以抹盘重装而不心疼。
  • 外接 SSD (2TB):

    • 我将其逻辑划分为两个独立的区域(APFS/ExFAT):
    • 分区 A (1TB - DataShare):作为纯数据仓库。通过 SMB 协议挂载到局域网,让我的 MacBook Pro 可以随时读写里面的素材和文档,充当 NAS 的角色。本来想装一个 NAS 的服务端,但后来发现 SMB 已经足够好用了。
    • 分区 B (1TB - VM_Cluster):专用的虚拟机磁盘池。这里存放着 8 台虚拟机的镜像文件。

2. 虚拟化方案:UTM 的极限压榨

在 Apple Silicon 平台上,UTM 是运行虚拟机的最佳选择之一。为了平衡性能,我制定了如下的资源配额:

  • 网络模式:全部采用 Bridged (桥接模式)

    • 这意味着每台 VM 都会从路由器获取一个独立的局域网 IP (e.g., 192.168.1.x),在网络层面上它们与宿主机是平级的。这为后续的网络路由提供了物理基础。这个选项要求你必须使用有线连接网络,所以如果你是无线网下的机器,直接使用 shared 即可。
  • 资源分配:

    • High-Perf Group (x4):每台分配 150GB 存储,2GB 运存和 2 核心 CPU。用于跑编译、数据库、Agent 系统等重负载任务。
    • Eco Group (x4):每台分配 100GB 存储,1GB 运存和单核 CPU。用于跑轻量级服务(如简单的 Web Server、监控探针)。

为了防止 1TB 空间被撑爆,使用了动态扩容 (Sparse) 镜像格式,按需占用空间。为了方便,最好先安装配置好一台 VM,然后保存成模版机,之后只需要直接 clone 这台机器去使用即可。注意别忘了设置独特的 hostname 和 SSH 密钥!

3. 网络架构

最棘手的问题是如何让外界访问这 8 台只有内网 IP 的虚拟机。传统的路由器端口映射(Port Forwarding)既不安全,也受限于 ISP 的动态 IP。

我的解决方案是 Cloudflare Tunnel (Zero Trust)

架构逻辑

  1. 公网请求:用户访问 vm1.mydomain.com
  2. Cloudflare 边缘:请求被加密并通过 Tunnel 传送到我的 Mac Mini。

唯一需要注意的就是,这个服务只能通过 HTTP(S) 的流量,所以访问 SSH 的时候只能本地也通过 cloudflared proxy,它把 SSH 连接打包成了 WebSocket 流量。

优势

  • 标准端口:完美支持 HTTP(80) 和 HTTPS(443),无需在 URL 后面加丑陋的端口号(如 :8080)。
  • 隐身模式:不需要暴露 Mac Mini 的真实公网 IP,防火墙可以默认拒绝所有入站连接,只允许出站连接到 Cloudflare。
  • 独立体验:虽然物理上是一个出口,但在逻辑上,每个 VM 都可以有很多独立的子域名。

4. 远程管理与自动化

为了让这台 Mac Mini 成为真正的“Headless Server”(无头服务器):

  • 开机自启:配置了 Automator 脚本,开机自动登录账户并启动 UTM 虚拟机组。
  • 备用通道:除了 Cloudflare Tunnel 用于 Web 服务,我还配置了 SSH 和 macOS 自带的屏幕共享 (VNC),方便在局域网内进行底层维护。

总结

通过这套配置,我将一台消费级的 Mac Mini 改造成了一个拥有 NAS 功能的高密度微型数据中心。数据在内网高速流转,服务通过 Cloudflare 安全地暴露给公网,兼顾了性能、安全与便利性。

接下来,只需要按需在某个 VM 上部署你的服务即可!比如部署一个 Clawd Bot 实例……

CC BY-SA 4.0

This article is licensed under CC BY-SA 4.0. You are free to share and adapt this work, provided you attribute Kevin Zhong and distribute under the same license.