博客 · Guides
云 Mac 与 Mac VPS 有什么区别?
独占云 Mac 和 macOS VPS 听起来差不多,实际表现却不同。本文从性能、GPU 访问、Xcode、隔离性和成本几方面对比两者。

云 Mac 和 Mac VPS 都能给你远程的 macOS,但前者是一整台物理机,后者是共享硬件的虚拟机。这一差别决定了性能、GPU 访问、Xcode 表现、隔离性和成本。
先把概念说清楚
这两个词经常被混用,有必要先厘清。
- 云 Mac(独占)。放在托管机房里、分配给单一客户的物理 Mac mini 或 Mac Studio。macOS 直接跑在硬件上,所有核心、完整 GPU 和整块 SSD 都归你。
- Mac VPS(虚拟)。运行在 Mac 宿主机上的 macOS 虚拟机。宿主机的 CPU、内存和存储被分给一个或多个客户机,你拿到的是其中一份,部分设备是虚拟的。
市面上有些“macOS VPS”把 macOS 跑在非 Apple 硬件上。Apple 许可不允许这样做,而且这类环境系统一更新就容易出问题,也缺乏可用的 GPU 支持。本文只讨论在正品 Apple 硬件上虚拟化 macOS 的情况。
macOS 在 Apple 硬件上如何虚拟化
在 Apple 芯片上,macOS 虚拟机基于 Apple 的 Virtualization 框架,底层是 macOS 内置的虚拟机管理程序。UTM、Tart、Parallels Desktop 以及各种商业编排平台都构建在它之上。客户机启动快,可以从模板克隆,任务结束即可销毁,这正是虚拟 macOS 在一次性 CI 中流行的原因。
许可条款决定了它能走多远。按我们的理解,Apple 的 macOS 许可允许每台 Mac 在宿主系统之外,最多在虚拟机中再运行两份 macOS;同时允许将 Mac 租给单一客户,最短租期为 24 小时。实际含义是:服务商无法像 Linux VPS 那样在一台宿主机上合规地塞进大量 macOS 租户,而面向单一客户的租用至少以 24 小时起算。不同版本的 macOS 许可条款可能有变化,如果这对你的项目很重要,请阅读最新原文;本文不构成法律意见。
性能
Apple 芯片上的虚拟化效率很高,配置得当时 CPU 密集型任务在虚拟机中接近原生速度。差异主要体现在别处:
- 资源共享。两个客户机共用一台宿主机时,会共享核心、内存带宽和 SSD 吞吐。邻居忙起来,你就会变慢。
- 固定分配。虚拟机只分到固定数量的核心和内存。内存往往更紧张,因为宿主机自己也要占一份。
- 存储。虚拟磁盘在文件和 SSD 之间多加了一层。对 I/O 密集的工作,比如带 DerivedData 的大型 Xcode 构建,差距可能很明显。
独占 Mac 没有这些变量,构建时间可重复,更容易发现自己代码中的性能回退。
GPU 与 Metal 访问
这是实际使用中最大的差别。macOS 客户机无法直接访问宿主机 GPU,Apple 的 Virtualization 框架提供的是一个半虚拟化图形设备,向客户机暴露 Metal。日常桌面和很多应用够用,但无法发挥硬件完整的 GPU 性能和功能。
这会影响:
- 依赖 Metal 加速的大模型推理,比如 Ollama、llama.cpp 或 MLX。
- GPU 渲染、视频特效和游戏引擎开发。
- 需要与真机行为一致的 Metal 相关测试。
如果这些是你的核心工作,独占 Mac 更稳妥。依赖 GPU 的典型例子可以看在 Mac mini 服务器上运行 Ollama。
Xcode 与模拟器表现
Xcode 可以在 macOS 虚拟机中运行,编译、签名和上传构建一般都没问题。有几点需要了解:
- 模拟器。iOS 模拟器可以在虚拟机中运行,但会与客户机争抢有限的内存和 GPU。并行跑多个模拟器时,虚拟机最先吃力。
- Apple 账户登录。在虚拟机中登录 Apple 账户过去一直受限,近几个 macOS 版本有所改善。依赖它的功能,比如部分 iCloud 和 App Store 流程,表现仍可能不同。
- 真机连接。无论哪种方式,给托管机器连接真实 iPhone 都不太现实,真机测试请规划使用模拟器或设备云。
- 磁盘空间。Xcode、模拟器运行时和 DerivedData 非常占空间,虚拟机镜像往往分配得很紧,务必确认实际可用容量。
在独占 Mac 上,Xcode 的表现和你桌上那台 Mac 完全一样,因为它本来就是一台真正的 Mac。常见配置见 Xcode 构建服务器。
隔离与安全
虚拟机是很强的隔离边界,逃逸漏洞很少见。但虚拟机毕竟共享物理硬件,客户机之间的侧信道攻击是任何共享平台都存在的一类已知风险。独占 Mac 直接消除了这类风险:机器上不会运行其他客户的代码。
虚拟机也有一个安全优势:每次任务后销毁的临时虚拟机不会给下一个任务留下任何东西。在独占 Mac 上,稍加注意也能达到同样效果:任务之间清理工作目录、使用独立用户账户、把密钥放在钥匙串或 CI 系统中而不是磁盘上。
成本
由于许可限制了每台宿主机能运行的 macOS 客户机数量,虚拟 macOS 远没有 Linux VPS 那么便宜。共享硬件上的虚拟机通常比整台机器便宜一些,最低期限之后按小时计费也适合短时突发任务。但对于每天都要用的机器,按月或按年租用独占 Mac 往往同样有竞争力。在 Hatmac,独占 Mac mini 12 个月周期起价 $119/月。更详细的对比见 Mac mini 托管成本指南。
对比一览
| 方面 | 独占云 Mac | Mac VPS(macOS 虚拟机) |
|---|---|---|
| 硬件 | 整台物理 Mac | 宿主机的一部分 |
| CPU 性能 | 原生、稳定 | 接近原生,可能受邻居影响 |
| GPU / Metal | 完整访问 | 半虚拟化,有限制 |
| 内存 | 全部可用 | 固定分配 |
| Xcode 与模拟器 | 与本地 Mac 完全一致 | 可用,但受资源限制 |
| 恢复干净状态 | 手动或脚本化 | 快照或克隆,速度快 |
| 隔离 | 物理隔离 | 虚拟机管理程序隔离 |
| 常见计费 | 按月或按周期 | 按小时或按月,每次租用最少 24 小时 |
各自适合什么场景
适合选 Mac VPS 的情况
- 需要短生命周期、用完即弃的构建环境,并且有能力编排。
- 任务以 CPU 为主,不依赖 Metal。
- 只是偶尔需要 Mac 测试,希望入门成本最低。
适合选独占云 Mac 的情况
- 每天都跑 CI,希望构建时间稳定、缓存常驻。
- 需要用 GPU:大模型推理、渲染、视频或 Metal 测试。
- 想要一台和本地 Mac 一样好用的完整远程桌面。
- 希望与其他客户物理隔离。
两者也可以结合:在许可范围内,在独占 Mac 上自己运行虚拟机处理一次性任务,同时完全掌控宿主机。详见独占 Mac 服务器。
常见问题
云 Mac 和 Mac VPS 有什么区别?
独占意义上的云 Mac 是分配给你的整台物理 Mac,Mac VPS 是共享 Mac 宿主机的 macOS 虚拟机。独占 Mac 可以完整使用 GPU,性能也更稳定。
Hatmac 的机器是虚拟机吗?
不是。每台机器都是分配给单一客户的独占物理 Mac mini 或 Mac Studio。
能在租用的独占 Mac 上运行 macOS 虚拟机吗?
可以。机器由你掌控,可以使用基于 Apple Virtualization 框架的工具,但请遵守许可中关于额外 macOS 副本数量的限制。