SSD Nodes Learn Hosting plans →
指南 Matt Connor作者: Matt Connor

FreeBSD 15 适合服务器吗?优势与适用场景

了解 FreeBSD 15 为什么适合服务器:统一基础系统、ZFS、jails 和 pf 如何协同工作,以及 pkgbase 取代传统升级工具的具体变化。

用一段话说明 FreeBSD 15

FreeBSD 是完整的服务器操作系统,不是由内核和构建在其上的发行版组成的系统。编写内核的团队也负责核心用户空间、文档和版本发布,并将它们作为一个带版本号的整体一起发布。FreeBSD 15 是该系统最新的主版本。如果您一直只使用 Linux,需要记住这一点:在 FreeBSD 中,基础系统由一个项目统一维护,您添加的软件包则明确位于基础系统之上。这一设计选择解释了人们喜欢 FreeBSD 的大部分原因。

我日常的大多数工作使用 Linux,SSD Nodes 也是 Linux VPS 主机商。不过,FreeBSD 仍然是我最喜欢深入使用的服务器操作系统,这篇文章将说明原因。这里需要坦诚说明一点:我们不提供 FreeBSD VPS 方案,因为市场需求很少。喜欢 FreeBSD 的用户通常会在自己的硬件上运行它,而不是租用服务器,因此 FreeBSD 的 VPS 市场一直很小。

FreeBSD 15 的新特性

FreeBSD 15.0 于 2025 年 12 月发布,其核心变化是引入了 pkgbase:一种将基础系统本身作为 pkg 软件包进行安装和更新的新方式。安装程序会要求您在 pkgbase 和传统的发行版集合(distribution sets)之间做出选择。官方的虚拟机和公有云镜像(即您在 VPS 上获取的镜像)默认使用 pkgbase。FreeBSD 15.0 将 pkgbase 作为技术预览版发布,项目组预计它将成为未来版本中安装和升级基础系统的标准方式。使用发行版集合的安装方式仍继续使用旧的 freebsd-update 工具,该路径在整个 FreeBSD 15 分支中均受支持,但计划在 FreeBSD 16 中移除对发行版集合的支持。因此,尽管 pkgbase 目前被标记为预览版,但它代表了未来的发展方向。FreeBSD 15.1 已于 2026 年 6 月 16 日发布,15.0 已于 2026 年 9 月 30 日停止支持,因此仍在运行 15.0 的服务器应升级至 15.1。

基础系统与 Linux 发行版模式的对比

如果说有一个差异能解释 FreeBSD 的本质,那就是这一点,其他大多数差异都由此衍生。在 Linux 服务器上,您运行的是一个“发行版”。内核来自一个项目,C 库来自另一个,核心命令又来自另一个,发行版的维护者将这些组件组装在一起并选择兼容的版本。这需要大量的协调工作,虽然可行,但缝隙是客观存在的:升级可能会更新某些组件而忽略其他组件。

FreeBSD 的界限划分方式不同。内核、标准命令、C 库、防火墙和引导加载程序都来自同一个源代码树,拥有统一的版本号。您将基础系统作为一个整体进行升级:在采用发行版集合的安装中通过 freebsd-update 进行,或者在 FreeBSD 15 云镜像默认采用的 pkgbase 安装中通过 pkg 本身进行。其他所有内容,如 Web 服务器、数据库、语言运行时,都来自位于基础系统之上的 pkg 软件包,而不是与基础系统交织在一起。即使在 pkgbase 中,虽然现在使用同一个工具更新两个层级,但“操作系统”和“我安装的软件”仍然是两个可以独立考量的不同层级。

ZFS 作为系统的核心组件

ZFS 是大多数用户选择 FreeBSD 的主要原因。在 FreeBSD 15 中,ZFS 是系统的一等组件,而不是需要额外安装的附加功能。ZFS 将文件系统和卷管理器合并为一个整体,提供带校验和的数据保护,可检测静默损坏,而不是盲目信任磁盘;同时还支持即时快照、低成本克隆,以及 zfs send 和 zfs receive,可将文件系统逐字节传输到另一台计算机。

对于服务器而言,这些功能具有直接的实际价值。您可以在升级前为数据集创建快照:

zfs snapshot zroot/ROOT/default@before-upgrade

如果升级失败,可以直接回滚到该精确状态。FreeBSD 的引导加载程序支持 ZFS 引导环境,因此您可以将整个操作系统回滚到修改前创建的快照。Linux 也通过 OpenZFS 运行 ZFS,并且运行良好。区别在于,FreeBSD 从设计之初就将 ZFS 集成到安装程序、引导加载程序和更新工具中。

Jails:容器普及之前的容器技术

Jail 是一个轻量级的隔离环境,它共享宿主机内核,但拥有自己的文件系统、用户、网络和进程视图。如果这听起来像容器,那确实如此,而且 Jail 的出现比 Docker 早了十多年。FreeBSD 15 继续对其进行优化。

其思维模型比完整的容器栈更简单。一个 Jail 就是一个目录树加上少量的配置,在宿主机内核上运行真实的 FreeBSD 用户空间。您不需要镜像仓库或后台守护进程来实现隔离。对于托管多个独立服务的服务器,Jail 提供了极低的开销和强大的隔离性,而像 bastille 这样的工具使管理变得非常便捷。这与 在各自的 Docker 容器中运行每个服务 的思路相同,只是从另一个方向达成目标。如果您正在为某个特定服务在两者之间做选择,请注意 Jail 和 Docker 容器的主要区别在于软件的引入方式、状态的存储位置以及网络的连接方式。

pf:您会乐于编写的防火墙

FreeBSD 的数据包过滤器 pf 广受欢迎,原因只有一个:它的规则语法接近普通句子。规则集是一个可以从头到尾阅读并真正理解的文件。与在 Linux 上手写 iptables/nftables 规则相比,pf 更像是专为人工维护而设计的。如果您曾经处理过满屏的 iptables 行,pf 会让您轻松许多。

FreeBSD 适用的场景,以及不适用的场景

FreeBSD 凭借 ZFS,适合用作存储服务器;凭借 pf,适合用作防火墙和路由器。如果服务器更看重稳定、统一的基础系统和干净的升级过程,而不是追逐最新的内核功能,FreeBSD 也是很好的选择。它的文档《FreeBSD Handbook》是整个开源领域中最好的手册之一。阅读该手册是了解这个系统最快的方法。

FreeBSD 并不适合所有场景。容器生态规模较小,而且以 Linux 为主。如果整个工作流都依赖 Docker 镜像和 Kubernetes,使用 FreeBSD 就会面临较多限制。一些专有驱动和厂商工具仅支持 Linux。此外,大多数自托管教程(包括本网站上的许多教程)都以 Linux 发行版为基础。要全面了解家用服务器或副项目服务器可以运行哪些服务,请阅读 自托管概览。该文章面向 Linux 编写,但其中的思路同样适用于其他系统。要直接逐项比较功能,请阅读 面向服务器的 Linux 与 FreeBSD 对比。

如需进行另一组比较,请阅读 Linux 与 Windows Server 对比,了解另一个主要服务器平台与 Linux 的差异。

FAQ

FreeBSD 15 适合作为服务器使用吗?

是的,在合适的场景下非常适合。FreeBSD 15 是一个稳定、连贯的服务器操作系统,内置了 ZFS、Jail 和 pf,拥有顶级的文档,以及清晰的、以单元为单位的升级机制。它在存储、防火墙和长期运行的服务方面表现尤为出色,在这些场景中,您更看重可预测性而非最新的内核特性。如果您的工作流是围绕以 Linux 为中心的容器生态系统构建的,那么它可能不太适合。

FreeBSD 基础系统与 Linux 有什么区别?

在 Linux 上,内核和用户空间来自不同的项目,由发行版进行组装。在 FreeBSD 上,内核、核心命令、C 库、防火墙和引导加载程序属于同一个源代码树,拥有统一版本,作为一个整体通过 freebsd-update 进行升级;在 pkgbase 安装中则通过 pkg 升级,而您安装的所有其他软件则作为基础系统之上的独立软件包层存在。这种基础系统与软件包的分离是核心结构差异。

我可以在 VPS 上运行 FreeBSD 吗?

您可以在提供 FreeBSD 的主机商处运行它,尽管选择范围比 Linux 小。SSD Nodes 不提供 FreeBSD 方案,因为需求较少:运行 FreeBSD 的用户通常倾向于使用自己的硬件而非 VPS。许多 FreeBSD 服务器都是由所有者直接控制的物理机器。

在尝试 FreeBSD 之前我需要了解 Linux 吗?

不需要,但会有帮助。如果您使用过 Linux,Shell、SSH 和大多数日常命令会感到很熟悉。需要重新学习的主要内容是基础系统与软件包的分离、用于软件管理的 pkg(在 FreeBSD 15 pkgbase 安装中也用于基础系统,而发行版集合安装在 FreeBSD 15 分支中继续使用 freebsd-update),以及用于防火墙的 pf。FreeBSD 手册会引导您完成所有这些内容。