FreeBSD 15 服务器:它好在哪里
FreeBSD 15 是一套严肃的服务器操作系统:ZFS、jail、pf 以及一个统一的基础系统。本文讲它擅长什么,又适合用在哪里。
用一段话说清 FreeBSD 15 是什么
FreeBSD 是一套完整的服务器操作系统,而不是一个内核加上构建在其之上的发行版。编写内核的人也编写核心用户态、文档和发行版本,并把它们作为一个带版本号的整体一起发布。FreeBSD 15 就是这套系统最新的大版本。如果您只用过 Linux,需要记住的一点是:在 FreeBSD 上,基础系统是单一的一个项目,而您额外安装的软件包清清楚楚地叠加在它之上。正是这一个设计选择,解释了人们喜欢它的大部分原因。
我日常大多数工作都用 Linux,SSD Nodes 也是一家 Linux VPS 主机商。但 FreeBSD 依然是我最喜欢上手的服务器操作系统,本文就来讲讲为什么。有一句实话要说在前面:我们并不提供 FreeBSD 的 VPS 套餐,因为需求太少。喜欢 FreeBSD 的人通常在自己的硬件上运行它,而不是租用,所以它的 VPS 市场一直很小。
FreeBSD 15 有哪些新变化
2025 年 12 月发布的 FreeBSD 15.0,最重要的变化是 pkgbase:基础系统本身现在也作为 pkg 软件包来安装和更新。安装器提供了这一选项,而官方的虚拟机和云镜像(也就是您在 VPS 上拿到的那种)默认使用 pkgbase。较老的 freebsd-update 工具在 15 分支上仍然可用,但它以及它所依赖的发行集计划在 FreeBSD 16 中移除,所以 pkgbase 是发展方向,而不是一次试验。
基础系统与 Linux 发行版模式的对比
如果要用一个差异来解释 FreeBSD,就是这一点,其他大多数差异都由它衍生而来。在 Linux 服务器上,您运行的是一个发行版。内核来自一个项目,C 库来自另一个,核心命令又来自另一个,而发行版的维护者把这些部件组装起来,挑选能协同工作的版本。这需要大量的协调工作,它确实可行,但接缝是真实存在的:一次升级可能只挪动了部分部件,而没有挪动其余的。
FreeBSD 把这条界线划在了不同的地方。内核、标准命令、C 库、防火墙和引导加载器同属一棵源码树,共用一个版本号。您把基础系统作为一个整体来升级:在较老的安装上用 freebsd-update,在 FreeBSD 15 云镜像默认采用的 pkgbase 安装上则用 pkg 本身。其余的一切,包括您的 Web 服务器、数据库、各语言运行时,都来自叠加在基础系统之上的 pkg 软件包,而不是与它交织在一起。即便有了 pkgbase(现在一个工具同时更新两层),"操作系统" 和 "我安装的软件" 仍然是两个可以各自独立理解的层次。
ZFS 是一等公民
ZFS 是大多数人转向 FreeBSD 的原因所在,而在 FreeBSD 15 上,它是系统的一等组成部分,而不是您额外拼装进来的附加物。ZFS 把文件系统和卷管理器合二为一,因此您得到的是带校验和的数据,能检测出静默损坏,而不是盲目信任磁盘;还有即时快照、廉价的克隆,以及用 zfs send 和 zfs receive 把一个文件系统逐字节搬到另一台机器上的能力。
对服务器来说,这有实实在在的意义。您可以在升级前对一个数据集打快照:
zfs snapshot zroot/ROOT/default@before-upgrade一旦升级出了问题,就能直接回滚到那个确切的状态。FreeBSD 的引导加载器理解 ZFS 引导环境(boot environment),因此您可以把整个操作系统回滚到您动手改动之前所打的快照。Linux 也能通过 OpenZFS 运行 ZFS,而且运行得很好。区别在于,在 FreeBSD 上,它从一开始就接入了安装器、引导加载器和更新工具。
jail:在容器普及之前就有的容器
jail 是一个轻量、隔离的环境,它共享宿主机内核,但拥有自己的文件系统、用户、网络和进程视图。如果这听上去像容器(container),那没错,jail 比 Docker 早了大约十年。FreeBSD 15 继续在打磨它们。
它的心智模型比一整套容器栈更简单。一个 jail 就是一棵目录树加上一小段配置,运行真实的 FreeBSD 用户态、对接宿主机内核。您不需要镜像仓库,也不需要后台守护进程就能获得隔离。对于一台承载多个独立服务的服务器,jail 以极小的开销给您带来强隔离,而像 bastille 这样的工具让它们管理起来很舒服。这和 让每个服务运行在各自的 Docker 容器里 是同一种思路,只是从另一个方向抵达。
pf:一款您会乐于编写规则的防火墙
FreeBSD 的包过滤器 pf 广受喜爱,原因只有一个:它的规则语法读起来像一句句平白的话。一份规则集就是一个文件,您可以从头读到尾并真正读懂它。相比在 Linux 上手写 iptables/nftables 规则,pf 让人感觉它就是为让人来维护而设计的。如果您曾与一大堆 iptables 行搏斗过,pf 会让您如释重负。
FreeBSD 适合用在哪里,又不适合用在哪里
因为有 ZFS,FreeBSD 是存储服务器的有力选择;因为有 pf,它适合做防火墙和路由器;对任何一台更看重稳定统一的基础系统与干净升级、而不是追逐最新内核特性的服务器,它也很合适。它的文档,也就是《FreeBSD Handbook》,是整个开源世界里最好的手册之一,而阅读它是学习这套系统最快的途径。
它并不是万能的选择。容器生态较小,而且以 Linux 为先,所以如果您的整套工作流都是 Docker 镜像和 Kubernetes,您会逆流而行。有些专有驱动和厂商工具只支持 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 吗?
在提供该选项的主机商那里,您可以在 VPS 上运行 FreeBSD,只是可选范围比 Linux 窄。SSD Nodes 并不提供 FreeBSD 套餐,因为需求太少:运行 FreeBSD 的人往往用自己的硬件,而不是 VPS。许多 FreeBSD 服务器都是主人直接掌控的物理机器。
在尝试 FreeBSD 之前需要先懂 Linux 吗?
不需要,但会有帮助。如果您用过 Linux,shell、SSH 以及大多数日常命令都会让您感到熟悉。主要需要重新学习的,是基础系统与软件包的划分、用 pkg 安装软件(在 FreeBSD 15 的 pkgbase 安装上,基础系统也用它,而 freebsd-update 正在退场),以及用 pf 配置防火墙。《FreeBSD Handbook》会带您一步步走完这一切。