Mac 上用 brew 安装 UTM 与 QEMU(代理配置全记录)

环境

  • 硬件:Apple Mac,芯片 Apple M3(arm64)

  • 系统:macOS 26.6.2(Tahoe 系)

  • 包管理:Homebrew 6.0.21,前缀 /opt/homebrew

  • 网络:本机 socks5 代理 127.0.0.1:7890(Clash 类客户端默认端口)

目标

在 Mac 上安装 UTM 与 QEMU,形成「图形界面 + 命令行」双通道的虚拟化环境,后续由 agent 通过命令行直接创建、启动、停止虚拟机,不依赖 GUI 点击。

前置检查

安装前先确认两个前提:brew 可用、代理端口在监听。

复制代码
which brew

brew --version | head -1

nc -z -w 2 127.0.0.1 7890 && echo "7890 端口开放"

结果:brew 位于 /opt/homebrew/bin/brew,版本 6.0.21;7890 端口开放。

代理设置

关键点:Bash 每次调用是独立 shell 进程,环境变量不跨调用保留。因此每一条需要联网的命令都要重新 export 代理变量,不要指望第一次设置后一直生效。

复制代码
export ALL\_PROXY="socks5h://127.0.0.1:7890"

export HTTPS\_PROXY="socks5h://127.0.0.1:7890"

export HTTP\_PROXY="socks5h://127.0.0.1:7890"
  • 使用 socks5h 而非 socks5:DNS 解析也走代理,避免本地 DNS 污染导致 brew 解析失败

  • brew 内部走 curl 下载,读取上述环境变量

安装 UTM

UTM 是免费开源的虚拟化管理前端,基于 QEMU,以 cask 形式安装为 GUI 应用。

复制代码
export ALL\_PROXY="socks5h://127.0.0.1:7890"

export HTTPS\_PROXY="socks5h://127.0.0.1:7890"

export HTTP\_PROXY="socks5h://127.0.0.1:7890"

brew install --cask utm

安装结果:/Applications/UTM.app。cask 装的是 GUI app,不需要 sudo。

安装 QEMU

QEMU 本体提供全部命令行工具:qemu-system-aarch64、qemu-img 等。UTM 内部自带 QEMU 运行时,但装在 PATH 里的独立 QEMU 让命令行操作更直接。

复制代码
export ALL\_PROXY="socks5h://127.0.0.1:7890"

export HTTPS\_PROXY="socks5h://127.0.0.1:7890"

export HTTP\_PROXY="socks5h://127.0.0.1:7890"

brew install qemu

安装结果:qemu 11.1.1,自动装好依赖 p11-kit、libslirp、libusb、vde。

注意事项:

  • brew 有进程锁,两个 install 不能并行执行,必须串行

  • qemu 本体 bottle 约 729MB,加依赖下载量不小,建议放后台执行并等待完成

  • 安装完成后 brew 会自动清理旧缓存,属正常行为

验证结果

复制代码
ls -d /Applications/UTM.app

/Applications/UTM.app/Contents/MacOS/utmctl list

/opt/homebrew/bin/qemu-system-aarch64 --version

/opt/homebrew/bin/qemu-img --version

预期输出:

  • /Applications/UTM.app 存在

  • utmctl 输出 VM 列表(空列表正常),注意 utmctl 不支持 --version 参数

  • QEMU emulator version 11.1.1

  • qemu-img version 11.1.1

给 agent 的注意事项

  • utmctl 不在 PATH 里,完整路径是 /Applications/UTM.app/Contents/MacOS/utmctl,建议直接用绝对路径或建软链

  • utmctl 常用子命令:list、start、stop、clone,覆盖启停与复制

  • 首次使用 UTM 前需要手动打开一次 UTM.app 完成初始化(申请虚拟化权限),agent 无法代点

  • UTM 的 .utm 虚拟机包本质是 plist 配置加镜像文件,可用脚本生成,创建虚拟机不强制开 GUI

  • 裸 QEMU 与 UTM 分工:UTM 管虚拟机生命周期,QEMU 提供底层全部参数自由度

  • 系统架构是 arm64,安装 qemu 会得到 aarch64 系列工具,创建 ARM 客户机时走硬件虚拟化(Apple Hypervisor),性能接近原生

相关推荐
独隅21 小时前
WebStorm macOS 安装调优与实战效果全景
ide·macos·webstorm
木子欢儿1 天前
国内 macOS/Linux 安装 rust
linux·运维·服务器·macos·rust
一个人旅程~3 天前
关于imac27inch因改短用户名导致混合硬盘和系统崩溃的问题分析与故障解决
经验分享·笔记·macos·新浪微博
volunteer10243 天前
从仅剩 6 GB 到狂腾 70 GB:我的 256G Mac mini 深度清理与内存排查实战
macos
todoitbo4 天前
我在 Mac 上用 Docker 部署 Nexent:从拉取镜像到接入模型
macos·docker·大模型·ai智能体·nexent·快速入门与环境准备
独隅4 天前
WebStorm macOS 安装部署与高效调优实战指南
ide·macos·webstorm
fthux5 天前
Tick Rest,一个休息提醒工具的自我修养
macos·开源·swift
FPGA小迷弟6 天前
FPGA 与千兆以太网:各类物理接口的形式、区别、使用方法与应用场景详解
tcp/ip·macos·fpga开发·udp·fpga
周小董8 天前
[1379]mac安装nvm
macos
bossjuemfc8 天前
不记得文件名时,Mac 上的搜索还能怎么做?
macos