综合 Docker-OSX:在Docker中跑一个macOS,性能接近原生!

2024-11-19 09:26:55 +0800 CST views 2471

Docker-OSX:在Docker中跑一个macOS,性能接近原生!

这个项目主要是为了方便安全人员在 Linux 和 Windows 系统上对 macOS 进行安全研究。该项目基于 X11 技术,使用 Docker 运行 macOS,性能接近原生,并且支持 USB 直通和 iMessage 的安全研究。通过 Docker,您可以快速在 Windows、Linux 或 NAS 上运行 macOS,比使用虚拟机更便捷、更轻量。

? 功能简介

  • 使用 usbflux 在 Linux 上使用 iPhone OSX KVM
  • 在 Linux 上运行 macOS Monterey
  • 支持文件夹共享
  • 支持 USB 直通(支持热插拔)
  • 通过 SSH 连接(使用 50922 端口)
  • 通过 VNC 连接(使用 50922 端口)
  • 通过序列号生成器进行 iMessage 安全研究
  • 支持 X11 转发
  • 基于 QEMU+KVM 运行
  • 支持 Big Sur 和 Xvfb 无头模式
    images

? 安装 Docker-OSX

在正式开始前,请确保您的设备满足以下要求:

  • 至少 20GB 磁盘空间(最低限度的裸安装,若使用 Xcode 则需要 50GB)
  • 在 BIOS 设置中启用虚拟化
  • 支持 x86_64 kvm
  • Auto 模式时至少需要 50GB(其中一半用于基本映像,另一半用于运行时映像)
  • 设备上已安装好 Docker

Docker-OSX 通过镜像标签(tag)区分安装的具体 macOS 版本,各版本的安装如下:

Catalina 1.72GB

docker run -it \
    --device /dev/kvm \
    -p 50922:10022 \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e "DISPLAY=${DISPLAY:-:0.0}" \
    sickcodes/docker-osx:latest

Big Sur 2.31GB

docker run -it \
    --device /dev/kvm \
    -p 50922:10022 \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e "DISPLAY=${DISPLAY:-:0.0}" \
    sickcodes/docker-osx:big-sur

Monterey 2.30GB

docker run -it \
    --device /dev/kvm \
    -p 50922:10022 \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e "DISPLAY=${DISPLAY:-:0.0}" \
    -e GENERATE_UNIQUE=true \
    -e MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom.plist' \
    sickcodes/docker-osx:monterey

Ventura 2.36GB

docker run -it \
    --device /dev/kvm \
    -p 50922:10022 \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e "DISPLAY=${DISPLAY:-:0.0}" \
    -e GENERATE_UNIQUE=true \
    -e MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom-sonoma.plist' \
    sickcodes/docker-osx:ventura

Sonoma 2.44GB

docker run -it \
    --device /dev/kvm \
    -p 50922:10022 \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e "DISPLAY=${DISPLAY:-:0.0}" \
    -e GENERATE_UNIQUE=true \
    -e CPU='Haswell-noTSX' \
    -e CPUID_FLAGS='kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on' \
    -e MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom-sonoma.plist' \
    sickcodes/docker-osx:sonoma

High Sierra 2.11GB

docker run -it \
    --device /dev/kvm \
    -p 50922:10022 \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e "DISPLAY=${DISPLAY:-:0.0}" \
    sickcodes/docker-osx:high-sierra

Mojave 2.11GB

docker run -it \
    --device /dev/kvm \
    -p 50922:10022 \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e "DISPLAY=${DISPLAY:-:0.0}" \
    sickcodes/docker-osx:mojave

除了以上各版本的安装命令,项目还支持使用 auto 镜像,虽然镜像较大,但适合感兴趣的朋友深入研究。可以在官方项目的 Wiki 中查看详细教程,包括如何实现 USB 直通和连接 iPhone/iPad 的方法。

项目地址

Docker-OSX 项目地址


复制全文 生成海报 Docker macOS 安全研究 虚拟化 开发工具

推荐文章

Vue3中如何实现国际化(i18n)?
2024-11-19 06:35:21 +0800 CST
一个简单的打字机效果的实现
2024-11-19 04:47:27 +0800 CST
Node.js中接入微信支付
2024-11-19 06:28:31 +0800 CST
详解 Nginx 的 `sub_filter` 指令
2024-11-19 02:09:49 +0800 CST
Go语言中的`Ring`循环链表结构
2024-11-19 00:00:46 +0800 CST
Nginx 反向代理 Redis 服务
2024-11-19 09:41:21 +0800 CST
禁止调试前端页面代码
2024-11-19 02:17:33 +0800 CST
推荐几个前端常用的工具网站
2024-11-19 07:58:08 +0800 CST
php腾讯云发送短信
2024-11-18 13:50:11 +0800 CST
快手小程序商城系统
2024-11-25 13:39:46 +0800 CST
Gin 与 Layui 分页 HTML 生成工具
2024-11-19 09:20:21 +0800 CST
三种高效获取图标资源的平台
2024-11-18 18:18:19 +0800 CST
如何在Vue中处理动态路由?
2024-11-19 06:09:50 +0800 CST
如何实现虚拟滚动
2024-11-18 20:50:47 +0800 CST
js函数常见的写法以及调用方法
2024-11-19 08:55:17 +0800 CST
记录一次服务器的优化对比
2024-11-19 09:18:23 +0800 CST
goctl 技术系列 - Go 模板入门
2024-11-19 04:12:13 +0800 CST
避免 Go 语言中的接口污染
2024-11-19 05:20:53 +0800 CST
一键压缩图片代码
2024-11-19 00:41:25 +0800 CST
乐观锁和悲观锁,如何区分?
2024-11-19 09:36:53 +0800 CST
Go配置镜像源代理
2024-11-19 09:10:35 +0800 CST
Vue3中的组件通信方式有哪些?
2024-11-17 04:17:57 +0800 CST
filecmp,一个Python中非常有用的库
2024-11-19 03:23:11 +0800 CST
12 个精选 MCP 网站推荐
2025-06-10 13:26:28 +0800 CST
程序员茄子在线接单