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

相关推荐
あ-13 小时前
mac dbeaver安装后显示数据包损坏
macos
钱栈up13 小时前
从 macOS 切回 Windows,我用 5 个免费工具把 80% 操作习惯搬了回来
windows·macos·策略模式
91440623215 小时前
mac Git 账户切换问题
git·macos
铁锚16 小时前
清理macos系统DS_Store文件的sh脚本
macos
Hello_Pyhx21 小时前
CrossPaste 跨系统剪贴板配置:按发现、配对、同步逐层排查
macos·电脑
king13598745502 天前
LFM2.5-24B-A2B Mac 本地部署:内存估算、GGUF/MLX 与 Python 预检脚本
人工智能·macos
骑着蜗牛撵大象3272 天前
链路层不只是 MAC:以太网帧、ARP 与 802.1Q VLAN 的逐跳拆解
计算机网络·macos·ar·vlan·mac地址·链路层
一条泥憨鱼2 天前
【计算机网络】| 从 MAC 到 NAT 的跨网段通信全链路
服务器·网络·学习·计算机网络·macos
老牛日常随笔3 天前
Meta 开源 8160 亿参数模型,官方给的方案是两台 Mac Studio
macos·开源
桌管小李4 天前
内网终端安全再升级|迪康端点安全 2609 版本四大新功能解读
大数据·windows·安全·macos·网络安全