当前位置:首页>Linux>iOS 版 UTM 安装 Alpine Linux 虚拟机:跑 Docker、用 SSH、与 iOS 共享文件夹

iOS 版 UTM 安装 Alpine Linux 虚拟机:跑 Docker、用 SSH、与 iOS 共享文件夹

  • 2026-09-02 20:26:56
iOS 版 UTM 安装 Alpine Linux 虚拟机:跑 Docker、用 SSH、与 iOS 共享文件夹
目标:在 iPhone/iPad 上通过 UTM 运行 64 位 Linux 虚拟机(以 Alpine Linux 为例),实现更完整的 Linux 环境,进而运行 Docker 容器,并与 iOS 共享文件。

一、为什么不用 iSH,而改用 UTM?

很多人会用 iSH Shell 在 iOS 上“跑 Linux”。但 iSH 本质是模拟 32 位(i386) 的 Alpine Linux:

  • 32 位生态越来越弱,很多软件包装不上

  • 可能遇到各种 Bad system call 之类的问题

  • 对 Docker 这类需求不太友好

因此更合适的做法是:用 UTM(基于 QEMU) 跑一个 64 位 Linux 虚拟机。虽然启动会比 iSH 慢一些,但环境完整度和兼容性明显更好。

我这里仍然选择 Alpine Linux:

  • 发行版轻量,资源占用低(理论最低 128MB RAM 也能装)

  • 安装、启动都很快

  • 很适合用来跑纯命令行工具(如 ffmpeg、ImageMagick、Python/pip 等),当然也包括 Docker

备注:如果你的设备 RAM ≥ 4GB,并且能启用 JIT,装 Ubuntu Server 等更“重”的系统也是可行的。

二、准备工作:创建 Alpine Linux 虚拟机

1)下载 Alpine Linux 镜像

到 Alpine Linux 官网下载镜像:

  • 选择 x86_64 或 aarch64(按你要装的架构/镜像选择)

  • 建议选 standard 版本

官网:
https://www.alpinelinux.org/downloads/

2)安装 UTM 并新建 Linux 虚拟机

安装 UTM App 后,新建 Linux 虚拟机时建议:

  • RAM:至少 512MB(更大更顺)

  • 存储:至少 8GB

  • CPU:至少 2 核

  • 启用“强制多核心模式”(如果界面里有该选项)

如果你能给 UTM 启用 JIT,虚拟机速度会明显提升;不方便启用也没关系,用 UTM SE 跑 Alpine 也能勉强使用。

3)安装 Alpine Linux

虚拟机从镜像启动后,按 Alpine 的安装流程执行安装脚本:

setup-alpine

通常 10 分钟左右就能装好。

为了节省资源,可以不装图形界面;装好后启动会直接进入 TTY(纯命令行)。

注意:原文里写的是 seupt-alpine,这里按 Alpine 官方命令更正为 setup-alpine。

三、在 Alpine 里安装 Docker

进入普通用户账号后,在 Alpine 安装 Docker:

sudo apk add docker docker-cli-composesudo addgroup $USER dockersudo rc-update add dockersudo rc-service docker start

如果执行 docker pull 出现 No route to host 之类网络错误,可以尝试设置 DNS:

echo "nameserver 8.8.8.8" | sudo tee -a /etc/resolv.conf

四、从外部 SSH 登录到 UTM 虚拟机

如果你觉得 UTM 自带的 TTY 界面不够顺手,可以用 iSH Shell(或电脑上的 SSH 客户端)通过 SSH 登录虚拟机。

1)在 UTM 里做端口转发

UTM 虚拟机默认网络一般无法被外部直接访问。

做法:在虚拟机的网络设置里新增 端口转发(Port Forwarding):

  • 虚拟机内:22(SSH)

  • 映射到宿主本机:localhost:2022

这样你就可以通过 2022 端口 SSH 进虚拟机。

如果你在虚拟机里跑 Docker 服务并需要对外暴露端口,也请一并配置相应转发规则。

2)在虚拟机里安装并启动 sshd

sudo apk add opensshsudo rc-update add sshdsudo rc-service sshd start

3)用 iSH Shell 登录(同设备)

在 iSH Shell 里执行:

ssh user@localhost -p 2022

即可登录到 UTM 虚拟机。

小提醒:UTM 放到后台可能被 iOS 终止。iPad 上可以用「滑动置前」或「幕前调度」让两个 App 同时前台运行,稳定性会更好。

4)用电脑远程登录(同局域网)

如果你用电脑 SSH 客户端,且 iOS 设备和电脑在同一个网络:

ssh user@<iOS设备的IP> -p 2022

五、iOS 与虚拟机共享文件夹:两种方案

这里介绍两种常见方式:

  • SCP:基于 SSH 的文件传输

  • VirtFS(9P):UTM 的共享文件夹(VirtIO-9P / 9Pfs)

方案 A:SCP 传文件

1)从虚拟机拷到 iSH Shell

例如把虚拟机的:/home/user/Downloads/file.txt
拷贝到 iSH Shell 的:/root

scp -P 2022 -r user@localhost:/home/user/Downloads/file.txt /root

2)从 iSH Shell 拷到虚拟机

scp -P 2022 -r /root/file.txt user@localhost:/home/user/Downloads/

3)把 iSH Shell 的文件交给其它 App

打开 iOS 的「文件」App,找到 iSH Shell 的目录(通常能看到 root 目录),就能把文件移动/分享给其它应用。

方案 B:VirtFS(9Pfs)共享目录

UTM 的 VirtFS 实现是 VirtIO-9P(9Pfs),不是 VirtIO-FS。

1)在 UTM 设置共享文件夹

编辑虚拟机配置,在共享文件夹里启用 VirtFS (9Pfs),例如把 iOS 的「下载」目录共享给虚拟机。

2)在虚拟机里挂载到 /mnt

sudo mount share -t 9p /mnt

挂载成功后,双方文件即可互通。

六、关于 GPU 加速

iOS 上做 GPU 直通基本不可行。

如果你确实需要更好的图形性能,请了解并使用 UTM 的 virtio-gpu 半虚拟化方案(适用于 Linux 虚拟机的图形加速思路)。

最新文章

随机文章