如何在iPad上优雅地跑linux¶
iSH: 极致优雅的移动开发终端
笔者前段时间在捣鼓tailscale (传送门), 期望是"万物互联"
在几台主力机都归tailscale同一个子网下管理后, 现在我想把ipad加入其中, 目的是:
iPad上ssh到本地机器, 从而实现 "可以在水课教室里, 远程操控在实验室的机器跑程序"
这是个很好的愿景, 实现它本质上就两步:
iSH 是什么¶
iSH其实是一款APP, 目前已在 美区Apple Store 正式上线
iSH是一个模拟器, 用来在ARM架构的iOS设备上模拟x86架构, 让iOS设备在本地运行Linux Shell环境
这意味着你不用越狱, 就可以在一台iOS设备上运行一个Linux系统, 这完美符合我们的需求
iSH使用的Linux系统镜像是 Alpine Linux
Alpine Linux是一个由社区开发的Linux操作系统, 特点:
- "小而美"
- 安装简单: apk包管理工具
iSH 安装注意事项:¶
- 给 iPad 翻墙: 其实就是给它安装 shadow rocket, 这类操作在 youtube上有很多视频, 自行查阅
- 安装 iSH: 参考 这篇
- 在 iSH 终端里安装 SSH:
Bash 1 2
apk update apk add openssh-client - 打开 tailscale: 现在就可以优雅地连接远程设备. 然后跑试验了!

- iSH的挂载路径可以在iPad系统的“文件”App看到:

注意, 由于 iOS 的沙盘特性, tailscale 和 shadow rocket不能共存, 这一点在MacOS上则不会出现
iOS的沙盘特性, 啥意思?
现象:
我现在的ipad上使用shadow rocket作为网络代理, 然后刚才使用了tailscale也很好! 但是发现一个问题, 当开启shadow rocket网络代理, 系统就会自动关闭tailscale; 反之亦然
原因:
iPadOS 在同一时间只允许一个"VPN配置"处于活动状态
- Shadowrocket 的工作原理: 它通过创建一个系统级的"VPN 配置"来接管你 iPad 的所有网络流量,然后把这些流量(根据规则)发送到你的代理服务器 (比如: 香港的节点)
- Tailscale 的工作原理: 它也通过创建一个系统级的"VPN 配置"来创建一个虚拟的加密网络, 让你能访问你其他设备 (比如:
100.x.x.x/10)