发布FreeBSD/EC2桌面AMI

Lobsters Hottest 产品

摘要

AWS EC2上FreeBSD的新桌面AMI已发布,允许用户通过远程桌面协议运行带有图形用户界面的FreeBSD,并提供设置说明。

<p><a href="https://lobste.rs/s/ufor73/launching_freebsd_ec2_desktop_amis">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/09/25 03:08

# 启动 FreeBSD/EC2 桌面 AMI 来源:https://www.daemonology.net/blog/2026-09-24-Launching-FreeBSD-EC2-desktop-AMIs.html 我很高兴地宣布——别担心,我不会再搞那种(https://www.daemonology.net/blog/2026-08-27-Launching-Route-53-Files.html)了——FreeBSD/EC2 平台的一个新功能:桌面 AMI。大多数人认为 FreeBSD 是一个仅通过命令行使用的服务器操作系统,但任何参加过 BSD 会议的人都可以证明,它也能很好地运行图形界面。在 BSDCan(https://www.bsdcan.org/)上,我看到许多开发者在 Framework、Lenovo 和 Dell 的笔记本电脑上运行 FreeBSD,并且在很多设备上认出了 KDE 和 Xfce 桌面环境。 桌面 AMI 旨在让新用户更容易发现和开始使用 FreeBSD。您可以在 EC2 中启动它们,包括作为 AWS 免费套餐(https://aws.amazon.com/free/)的一部分,并使用与连接 Windows 虚拟机相同的远程桌面协议(https://en.wikipedia.org/wiki/Remote_Desktop_Protocol)进行连接。事实上,我精心设计了这些 AMI,使其行为尽可能接近 Windows 镜像——当然,例外之处在于,由于它们运行的是 FreeBSD,您无需为操作系统付费。 **让我向您展示如何开始。** 我已经在运行 FreeBSD,因此我使用 FreeBSD 命令行中的 AWS CLI(https://aws.amazon.com/cli/),但 Amazon 表示 AWS CLI 支持 Linux、macOS 和 Windows,因此无论您运行什么操作系统,都应该能够按照步骤操作。由于我住在加拿大温哥华附近,我使用 ca-west-1 AWS 区域,但您当然可以选择最方便您的区域。 我首先创建一个 EC2 安全组,允许从我的 IP 地址访问 TCP/3389 端口: ``` $ aws --region ca-west-1 ec2 create-security-group \ --group-name "remote-desktop" \ --description "Allows RDP Access" $ aws --region ca-west-1 ec2 authorize-security-group-ingress \ --group-name remote-desktop --protocol tcp --port 3389 \ --cidr 1.2.3.4/32 ``` 然后创建一个 SSH 密钥对——我们不会使用这个密钥对进行 SSH 连接(尽管实际上,如果我们打开安全组中的该端口,启动的镜像将会启用 SSH),而是用于加密一个随机生成的登录密码。请注意,我们需要一些非默认的 `ssh-keygen` 选项:为了使密码加密正常工作,我们需要一个 RSA 密钥,并且需要将其存储为 PEM 格式且不设密码短语。(如果您的操作系统上没有 `ssh-keygen`,您可以通过 AWS 控制台生成密钥对。) ``` $ ssh-keygen -q -t rsa -f ec2_desktop_key -N "" -m PEM $ aws --region ca-west-1 ec2 import-key-pair --key-name desktop \ --public-key-material fileb://ec2_desktop_key.pub ``` 创建了安全组和密钥对后,我查找 FreeBSD 15.1-STABLE 的最新桌面 AMI 并启动一个实例: ``` $ aws --region ca-west-1 ssm get-parameter \ --name /aws/service/freebsd/amd64/desktop/ufs/15.1/STABLE \ --query 'Parameter.Value' --output text ami-0338948310e7f17c3 $ aws --region ca-west-1 ec2 run-instances \ --query 'Instances[].InstanceId' --output text \ --key-name desktop --security-groups remote-desktop \ --instance-type m7i-flex.large --image-id ami-0338948310e7f17c3 i-0b683b23ff0e08515 ``` FreeBSD 现在将启动,创建 `ec2-user` 账户,并为其设置一个随机密码,我们可以使用 `aws ec2 get-password-data` 命令(也称为 EC2 GetPasswordData API)来获取它: ``` $ time aws --region ca-west-1 ec2 wait password-data-available \ --instance-id i-0b683b23ff0e08515 92.08 real 0.66 user 0.08 sys $ aws --region ca-west-1 ec2 get-password-data \ --query 'PasswordData' --output text \ --priv-launch-key ec2_desktop_key --instance-id i-0b683b23ff0e08515 35zukC+t+:hqQZv3 ``` 现在我们需要查找实例的 IP 地址,还应该获取主机证书指纹——这有两个版本,一个较旧的 SHA1 指纹和一个较新的 SHA256 指纹。通常,在 UNIX 上运行的工具会使用 SHA256 指纹,而 Windows 工具使用 SHA1 指纹。(如果第二个命令没有立即打印出指纹,请稍等几秒再试。) ``` $ aws --region ca-west-1 ec2 describe-instances \ --query 'Reservations[].Instances[].PublicIpAddress' --output text \ --instance-ids i-0b683b23ff0e08515 56.112.45.61 $ aws --region ca-west-1 ec2 get-console-output \ --query 'Output' --output text --latest \ --instance-id i-0b683b23ff0e08515 | grep THUMBPRINT RDPCERTIFICATE-THUMBPRINT: 2B9840830741A21B4777FF59F69E1D0E5CDAC8D8 RDPCERTIFICATE-THUMBPRINT256: 3b:0f:1a:5d:ab:98:bc:1f:1d:fb:c8:4c:3b:11:7a:09:6b:70:0f:41:83:fe:f4:97:32:50:dd:41:7e:94:08:60 ``` 由于我是在 FreeBSD 上运行,我使用 `xfreerdp` 连接到实例;如果您在 macOS 或 Windows 上运行,您需要在此处运行适合您操作系统的相应工具。无论使用哪种工具,您都需要指定用户名 `ec2-user`、IP 地址(如上所示)和密码(如上所示——如果从命令行运行,您可能需要将其引起来以避免 shell 元字符问题);并且在某个时刻,您应该指定主机证书指纹,或者在客户端要求您确认其正确性时进行核对。对于我来说,使用 FreeBSD,我运行: ``` $ xfreerdp /u:ec2-user '/p:35zukC+t+:hqQZv3' /v:56.112.45.61 \ /cert:fingerprint:sha256:3b:0f:1a:5d:ab:98:bc:1f:1d:fb:c8:4c:3b:11:7a:09:6b:70:0f:41:83:fe:f4:97:32:50:dd:41:7e:94:08:60 ``` 经过几秒钟的 KDE 会话初始化后,我面前出现了一个熟悉的图形界面环境。 完成后,我当然会进行清理,终止 EC2 实例并删除我创建的密钥对和安全组。(如果删除安全组失败,请等待几秒后重试;在使用它的实例消失之前,您无法删除安全组。) ``` $ aws --region ca-west-1 ec2 terminate-instances \ --instance-ids i-0b683b23ff0e08515 $ aws --region ca-west-1 ec2 delete-key-pair --key-name desktop $ aws --region ca-west-1 ec2 delete-security-group --group-name remote-desktop ``` **需要了解的事项** 让我分享一些我认为对您有用的重要技术细节。 - 桌面 AMI 使用 KDE,并预装了 Chromium 和 LibreOffice;您当然可以使用 `pkg` 工具安装其他软件,但我想提供一个有用的起点。 - 桌面 AMI 目前不适用于 arm64;由于一些我尚未完全理解的原因,我们没有 arm64 的 Chromium 软件包。 - 与所有 FreeBSD AMI 一样,这些 AMI 同时发布 UFS 根和 ZFS 根版本;如果您愿意,可以通过在上面的 `ssm get-parameter` 命令中将 `ufs` 更改为 `zfs` 来使用 ZFS 根。 - AWS 控制台不知道这些 AMI 支持 RDP,因此如果您通过其“启动实例”向导启动实例,它将建议创建一个开放了 TCP/22 端口而非 TCP/3389 端口的安全组;并且“连接”向导将显示 SSH 说明,而非像 Windows 那样显示 RDP 说明。我已要求 Amazon 提供一种机制,以便为 AMI 标记支持 RDP,从而启用该缺失的功能。 - 我预计这些将成为 FreeBSD 15.2-RELEASE 的一部分,该版本将于 12 月发布。 **定价和可用性** FreeBSD 桌面 AMI 与 FreeBSD 项目发布的所有 AMI 一样,是免费的;您只需支付 EC2 基础设施的费用。它们在除中东(巴林)和中东(阿联酋)之外的所有商用 AWS 区域均可用,由于这两个区域持续存在可用性问题。 如果您一直在考虑尝试 FreeBSD,现在正是时候:去启动一个实例吧! 由 Disqus(https://disqus.com/)提供的博客评论功能

相似文章

FreeBSD 网站的新设计

Lobsters Hottest

FreeBSD 项目为其官方网站推出了新设计,突出了操作系统的特性,如 ZFS、虚拟化、Jails、网络、文档和社区。

笔记本电脑上的 FreeBSD 15

Lobsters Hottest

作者分享了他们在笔记本电脑上使用 FreeBSD 15 的积极体验,重点介绍了 pkgbase、LinuxKPI 驱动程序和笔记本电脑支持项目等改进,并提供了在 ThinkPad X1 Carbon 上安装和配置 KDE Plasma 6 的分步指南。