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),性能接近原生

相关推荐
传奇开心果编程6 小时前
【SwiftUI娓娓道来】第3课:让界面活起来——交互与动画指南
学习·macos·ui·ios·swiftui·swift
朋友圈自动点赞工具12 小时前
Gmail 委托邮箱在手机上关不掉
macos·智能手机·cocoa·硬件评测
小黄人软件12 小时前
AndroidStudio老项目 macOS运行BlueTooth蓝牙串口助手(Android+Studio源码).rar
android·macos
她说..15 小时前
IntelliJ IDEA 快捷键速查表(Mac 版)
java·macos·intellij-idea
for_ever_love__19 小时前
iOS: CABasicAnimation动画
macos·ios·cocoa
ITKEY_19 小时前
Mac mini彻底禁止自动睡眠
macos
k4m7v2pz2 天前
用中文编程语言写游戏:玄铁语言生命游戏的 macOS 适配实录
游戏·macos·玄铁·生命游戏·中文编程语言·玄铁中文编程
大熊猫侯佩2 天前
macOS27 上可变界面尺寸 iOS App 揭秘
macos·ios·swiftui
tangzzzfan2 天前
把 ADB 装进 macOS app
macos
黑化旺仔9 天前
【OC】KVO
macos·ios·objective-c·cocoa