当前位置: 首页 > news >正文

【Mac】OrbStack:桌面端虚拟机配置与使用

OrbStack 是一款轻量、高效的虚拟化工具,专为 macOS 设计,旨在简化 Linux 虚拟机的创建、管理和使用。相比传统虚拟化解决方案(如 VirtualBox 或 VMware),OrbStack 提供无缝的 macOS 集成、快速的启动速度以及简化的网络配置,非常适合开发者、测试人员和需要轻量 Linux 环境的个人用户。本教程将详细指导您通过 OrbStack 创建 Ubuntu 虚拟机,配置网络服务、远程桌面、安装 .deb 版本的 Firefox,以及管理虚拟机(包括删除、克隆和存储迁移)。无论您是初学者还是有经验的用户,本教程将帮助您快速上手 OrbStack,高效利用虚拟化技术。

注意:本教程基于 2025 年 8 月 4 日的信息,OrbStack 功能可能随版本更新而变化,建议参考 OrbStack 官方文档 获取最新信息。

创建虚拟机

安装 OrbStack

确保已安装最新版 OrbStack:

  • 通过官网下载或使用 Homebrew 安装:

    brew install orbstack
    
  • 安装完成后,启动 OrbStack 服务。

创建 Ubuntu 虚拟机

在终端中运行以下命令创建虚拟机:

# 创建默认 ARM64 Ubuntu 24.04 LTS 虚拟机
orb create ubuntu:24.04 ubdesk# 若需运行 x86 (AMD64) 程序(Apple Silicon 用户),创建 Intel 架构虚拟机:
orb create --arch amd64 ubuntu ubdesk
  • 命令将从 OrbStack 官方仓库拉取 Ubuntu 镜像,创建名为 ubdesk 的虚拟机。
  • 创建过程约需 30秒到1分钟

参考

  • OrbStack 文档
  • OrbStack 发行说明
  • GitHub 讨论

启动并进入虚拟机

启动虚拟机并进入控制台:

# 启动虚拟机(若未启动)
orb start ubdesk# 进入 bash(默认用户名为 macOS 当前用户名)
orb -m ubdesk bash# 若设置了默认虚拟机,可直接进入:
# orb config set machine.default ubdesk
orb

参考: OrbStack 虚拟机管理文档

设置登录用户密码

OrbStack 默认使用 macOS 用户名创建虚拟机用户,但可能未设置密码,导致远程连接失败。设置密码:

sudo passwd $USER

按提示输入并确认密码。


虚拟机管理

删除虚拟机

要删除不再需要的虚拟机,请使用以下命令:

# 删除指定虚拟机(例如 ubdesk)
orb delete ubdesk
  • 注意:删除操作不可逆,虚拟机中的所有数据将被永久移除,请确保备份重要文件。

列出所有虚拟机

查看当前所有虚拟机的状态和信息:

orb list

输出将显示虚拟机名称、状态(运行/停止)、架构(ARM64/AMD64)等信息。

停止虚拟机

停止运行中的虚拟机:

orb stop ubdesk

克隆虚拟机

克隆现有虚拟机以创建其完整副本:

orb clone ubdesk ubdesk-clone
  • 命令将创建名为 ubdesk-clone 的新虚拟机,复制 ubdesk 的所有配置和数据。
  • 注意:克隆会占用额外的磁盘空间,确保有足够空间。

移动或导出虚拟机

OrbStack 不直接支持虚拟机的“移动”操作,但可以通过导出和导入实现类似功能:

  1. 导出虚拟机

    orb export ubdesk -o ubdesk.orb
    
    • 这会将虚拟机 ubdesk 导出为 ubdesk.orb 文件。
    • 导出的文件包含虚拟机的完整镜像和配置。
  2. 导入虚拟机
    在目标系统上使用 OrbStack 导入:

    orb import ubdesk.orb
    
  • 注意:导出和导入需要足够的磁盘空间,导出文件可能较大(取决于虚拟机内容)。

重命名虚拟机

OrbStack 当前不支持直接重命名虚拟机。如需更改名称,可通过以下步骤实现:

  1. 克隆虚拟机: 使用orb clone命令创建原虚拟机的副本,并指定新名称:

    orb clone ubdesk new-ubdesk
    
    • 这会创建名为 new-ubdesk 的新虚拟机,复制 ubdesk 的所有配置和数据。
  2. 验证新虚拟机: 启动并检查新虚拟机是否正常

    orb start new-ubdesk
    orb -m new-ubdesk bash
    
  3. 删除原虚拟机(可选): 如果确认新虚拟机正常运行,且不再需要原虚拟机,可删除它以释放空间

    orb delete ubdesk
    

设置默认虚拟机

将某虚拟机设置为默认,简化进入命令:

orb config set machine.default ubdesk

之后,直接运行 orb 即可进入默认虚拟机的 bash。

参考: OrbStack 虚拟机管理文档


配置开机自启

设置 OrbStack 在登录时自动启动,并运行未手动关闭的虚拟机:

# 启用开机自启
orb config set app.start_at_login true# 禁用开机自启(可选)
orb config set app.start_at_login false

配置网络与端口映射

OrbStack 网络模型

OrbStack 简化了虚拟机网络访问:

  • 本地访问:虚拟机服务通过 Mac 的 localhost:port 访问(如 localhost:8000)。
  • 局域网访问:服务监听 0.0.0.0:: 时,通过 Mac 的 IP 地址对局域网设备可见。
  • 无需显式端口映射:OrbStack 不使用类似 Docker 的 -p 标志或 VirtualBox 的端口转发,依赖服务配置和 Mac 网络栈。

运行 HTTP 服务器

在虚拟机中启动简单 HTTP 服务器:

python3 -c 'import http.server, socketserver; PORT = 8000; socketserver.TCPServer(("0.0.0.0", PORT), http.server.SimpleHTTPRequestHandler).serve_forever()'
  • 服务器监听 0.0.0.0:8000,服务当前目录文件。

验证服务运行:

netstat -tlnp | grep 8000

确保输出显示 0.0.0.0:8000

确认网络访问

  1. 获取 Mac IP 地址

    ipconfig getifaddr en0
    

    假设返回 192.168.1.100

  2. 局域网访问
    在局域网设备上访问 http://192.168.1.100:8000

  3. 本地访问
    在 Mac 上访问 http://localhost:8000


配置远程桌面

安装 XFCE 桌面环境

XFCE 支持直接通过 Mac 的 3389 端口进行远程连接。安装 XFCE 和 xrdp:

sudo apt update
sudo apt install -y xfce4 xfce4-goodies
sudo apt install -y xrdp
  • 安装需几百 MB 空间,确保网络通畅或已配置代理。

启用并启动 xrdp 服务:

sudo systemctl enable xrdp
sudo systemctl start xrdp

验证服务状态:

sudo systemctl status xrdp

配置 xrdp 使用 XFCE

设置用户默认桌面为 XFCE:

echo "startxfce4" > ~/.xsession
chmod +x ~/.xsession

为所有用户设置默认桌面(可选):

sudo sed -i.bak '/^test -x \/etc\/X11\/Xsession && exec \/etc\/X11\/Xsession$/s/^/#/' /etc/xrdp/startwm.sh
echo "startxfce4" | sudo tee -a /etc/xrdp/startwm.sh

使用远程桌面客户端连接

从 macOS 或 Windows 使用 RDP 客户端连接:

  • 主机名ubdesk.orb.local
  • 端口3389
  • 用户名:macOS 用户名(或新创建用户)
  • 密码:之前设置的密码

提示:macOS 用户可使用 Microsoft Remote Desktop(Windows App)。


安装 .deb 版本的 Firefox

卸载 Snap 版本 Firefox

若已安装 Snap 版本 Firefox,先卸载:

sudo snap remove firefox

添加 Mozilla 官方 APT 仓库

添加 Mozilla 官方仓库以获取 .deb 版本 Firefox:

# 创建密钥环文件夹
sudo install -d -m 0755 /etc/apt/keyrings# 下载并导入 Mozilla GPG 密钥
wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null# 添加 Mozilla APT 仓库
echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee /etc/apt/sources.list.d/mozilla.list > /dev/null

安装 Firefox

更新包列表并安装 Firefox:

sudo apt update
sudo apt install firefox

总结

通过以上步骤,您可以:

  • 创建并管理 Ubuntu 虚拟机。
  • 配置开机自启和网络服务。
  • 安装 XFCE 桌面环境并通过 RDP 远程连接。
  • 安装 .deb 版本的 Firefox。

如需更多信息,请参考:

  • OrbStack 官方文档
  • OrbStack 官网
  • Mozilla APT 仓库
http://www.lryc.cn/news/610311.html

相关文章:

  • 防火墙认证用户部署
  • DPDK中的TCP头部处理
  • 在安卓中使用 FFmpegKit 剪切视频并添加文字水印
  • uiautomator2 编写测试流程-登陆后的酷狗01
  • Django集成图片验证码功能:基于django-simple-captcha实现
  • MySQL Router
  • Elasticsearch Ingest Pipeline 实现示例
  • C 语言枚举、typedef 与预处理详解
  • C语言的数组与字符串
  • AI产品经理面试宝典第61天:AI产品体验、数据安全与架构实战解析
  • 倒排索引:Elasticsearch 搜索背后的底层原理
  • 无公网环境下在centos7.9上使用kk工具部署k8s平台(amd64架构)
  • 数字信号处理_编程实例1
  • 【前端】JavaScript基础知识及基本应用
  • C++ STL list容器详解:从基础使用到高级特性
  • AI绘图-Stable Diffusion-WebUI的基本用法
  • SwiftUI ios开发中的 MVVM 架构深度解析与最佳实践
  • 深度学习零基础入门(4)-卷积神经网络架构
  • (JAVA)自建应用调用企业微信API接口,设置企业可信IP
  • 流量见顶时代,知识付费 IP 的破局逻辑
  • 汇川PLC通过ModbusTCP转Profinet网关连接西门子PLC配置案例
  • 飞算 JavaAI 实战:从代码生成到架构优化的全场景应用指南
  • 机试备考笔记 4/31
  • springboot博客实战笔记01
  • 登Nature子刊,基于基因测序和机器学习的废水流行病学评估,病毒检出时间最高提前4周
  • 机器学习(11):岭回归Ridge
  • 服务器的Mysql 集群技术
  • 经典设计模式
  • YOLO11涨点优化:原创自研DSAM注意力!基于BiLevelRoutingAttention的颠覆性升级
  • 06 基于sklearn的机械学习-欠拟合、过拟合、正则化、逻辑回归