StartOS 0.4.0 发布:历时六年全面重写,引入 LXC、新网络栈与 S9PK 软件包
Start9 Labs 正式发布面向个人服务器和自托管场景的 Linux 发行版 StartOS 0.4.0。这不是一次普通的增量升级,而是项目历时六年完成的系统级重写,涉及用户界面、网络、容器运行时、软件包、备份、身份验证和多架构支持等几乎所有核心组件。
StartOS 是一款基于 Debian Stable 的服务器操作系统,主要用于在个人硬件上运行自托管服务。它负责应用发现与安装、网络配置、依赖管理、数据备份和运行状态监控,并通过浏览器提供图形化管理界面。用户可以从 Start9 Marketplace 安装 Bitcoin、Lightning、BTCPay Server、Nextcloud、Vaultwarden、Matrix 和 SimpleX 等服务。

根据官方 GitHub 发布说明,StartOS 0.4.0 已结束公开测试阶段。稳定版在代码和功能上与 0.4.0-beta.10 相同,主要变化是将这一代架构正式标记为可供普通用户使用,并提供完整的迁移说明、安装镜像和校验值。
全新的服务器管理界面
StartOS 0.4.0 重新设计了 Web 管理界面,在提高操作速度和信息组织能力的同时,针对手机和平板电脑进行了优化。

新界面加入实时系统监控面板,可以显示服务器负载、内存、存储和服务运行情况。服务接口被提升为独立的导航页面,系统日志与内核日志则移动至系统设置中。备份、软件安装和更新过程也改用分阶段进度显示,用户可以更直观地判断当前操作是否仍在进行。
新版前端升级至 Angular 22、TypeScript 6 和 Taiga UI 5.11。后端主要使用 Rust、Tokio 和 Axum 构建,并通过 Start9 自行开发的 Patch-DB 实现响应式状态同步。Start Technologies 仓库目前已经成为 StartOS、StartTunnel、StartWRT、Start CLI、Start SDK 和软件市场等 Start9 产品的统一代码仓库。
LXC 取代 Docker 和 Podman 成为服务运行时
0.4.0 的一项核心架构变化,是使用 LXC 取代此前的 Docker/Podman 服务运行方式。
新的容器架构支持:
- 在服务中运行多个相互协作的容器;
- GPU 和其他硬件加速设备;
- 嵌套容器与用户空间文件系统;
- 独立虚拟网络和 WireGuard;
- 基于 idmapped mount 的文件权限映射;
- 对服务容器实施统一的内存隔离。
每个服务容器都会被放入受 systemd-oomd 监控的 services.slice。系统会为主机保留至少 1 GiB 内存,避免同时安装或启动多个服务时耗尽全部内存,导致整台服务器失去响应。

根据 DistroWatch 软件包清单,StartOS 0.4.0 的部分底层组件如下:
| 组件 | 版本 |
|---|---|
| Debian 基础系统 | Debian 13 |
| Linux 内核 | 7.0.13 |
| systemd | 257.13 |
| LXC / LXCFS | 6.0.4 |
| NetworkManager | 1.52.1 |
| nftables | 1.1.3 |
| OpenSSL | 3.5.6 |
| OpenSSH | 10.0p1 |
| Firefox ESR | 140.13 |
| Tor | 0.4.9.11 |
虽然安装镜像仍包含部分 Podman 和 Buildah 工具,但 StartOS 服务的主要运行环境已经迁移到 LXC。
重新构建网络系统
StartOS 0.4.0 对网络系统进行了大规模重写,为每项服务提供更灵活的本地、远程、私有域名和公网访问方式。
新网络栈支持:
- 局域网端口转发;
- WireGuard VPN 网关;
- 私有域名和公网域名;
- 内置 DNS 服务;
- Let’s Encrypt TLS 证书;
- IPv4 与 IPv6 双栈公网域名;
- Tor 作为可选服务;
- StartTunnel 反向隧道。
StartOS 现在可以通过 PCP、NAT-PMP 和 UPnP IGD 自动与路由器协商端口映射,并按照 PCP、NAT-PMP、UPnP 的顺序尝试。系统还能通过 RFC 2136 DNS UPDATE 将私有域名记录写入网关的 DNS 服务,减少手动设置端口转发和局域网 DNS 的需要。

IPv6 全局单播地址可以被设置为“仅本地”或“公开”。当网关具备 IPv6 地址时,公网域名可以同时发布 A 与 AAAA 记录;对 TLS 服务,StartOS 会根据 SNI 只接受匹配目标域名的连接。
StartTunnel:不暴露家庭公网地址的远程访问
新版本加入与网络栈深度整合的 StartTunnel。这是一个自由、开源的 WireGuard 反向隧道和代理服务,可以为位于 CGNAT、动态公网地址或受限网络之后的 StartOS 服务器提供公网域名和端口转发。
与传统第三方隧道服务不同,StartTunnel 也可以由用户自行部署。它能够在不直接公开家庭 IP 地址的情况下,将指定服务暴露到互联网,并与 StartOS 的域名、DNS、TLS 和端口管理功能配合使用。

新的 S9PK 软件包格式
StartOS 0.4.0 引入重新设计的 S9PK 服务软件包格式。S9PK 使用签名和 Merkle 归档结构,提供:
- 软件包签名及来源验证;
- 内容完整性检查;
- 部分下载;
- 多架构软件包;
- 服务依赖和运行权限声明;
- 更可靠的安装、升级与迁移流程。
与之配套的 TypeScript Start SDK 2.0 可以帮助开发者将现有应用封装为 StartOS 服务。SDK 还增加了多容器、连续端口范围、初始化进度、备份进度和跨软件包操作等接口。
改进备份与跨服务器恢复
新版备份系统使用 StartOSBackupsV2 格式,支持差异备份、跨服务器恢复和基于 FUSE 的跨平台文件系统访问。第一次完整备份完成后,后续备份只需要保存新增、修改或删除的内容,从而缩短备份时间。
系统会在选择备份目标时显示可用空间,并记录各软件包的备份用时及进度。在发现旧版 StartOSBackups 数据后,管理界面可以提示用户删除已经不再需要的旧备份,同时只清理当前服务器对应的数据,不影响同一存储设备上的其他服务器备份。
StartOS 0.4.0 还修复了服务尚未完全停止便开始复制数据的问题。系统现在会等待服务彻底停止后才执行备份,降低数据库等持续写入型应用产生不一致快照的风险。

使用设备签名密钥取代 Cookie 会话
StartOS 0.4.0 将 Web 管理界面和命令行接口的身份验证机制,从传统会话 Cookie 改为设备级 Ed25519 签名密钥。
用户登录时,浏览器会生成一个不可导出的 WebCrypto 私钥,并将对应公钥登记到服务器。此后的每次 API 请求都会使用该密钥签名,而不再携带登录 Cookie。系统允许用户在“活动会话”页面查看和撤销已登记设备,并会自动移除超过30天没有活动的密钥。
这一变化可以避免运行在同一服务器其他端口上的服务设置 Cookie 后,与 StartOS 管理界面发生名称或作用域冲突。升级完成后,所有旧会话都会失效,用户需要在每台设备上重新登录。
从 iptables 迁移到 nftables
0.4.0 将 StartOS 管理的防火墙规则全面迁移至原生 nftables。端口转发、DNAT、Hairpin NAT、伪装、容器流量和策略路由规则被集中到专用的 table ip startos 中,并使用稳定的注释标签管理规则生命周期。
系统还强化了公网暴露策略:只有使用 TLS 或自身具备安全机制的协议才会被自动开放至互联网。普通明文服务即使可以在可信局域网中使用,也不会自动暴露到公网。
提供三种体系结构及多个镜像版本
StartOS 0.4.0 提供 x86_64、AArch64 和 RISC-V RVA23 镜像,同时为 Raspberry Pi 4 准备了独立的 microSD 镜像。x86_64 与 AArch64 版本又分为:
- Standard:包含专有固件和驱动,兼容更多显卡、无线网卡及其他硬件;
- Slim:仅包含自由及开源软件,适合已确认兼容的硬件;
- NVIDIA:额外包含 NVIDIA 驱动和容器工具。
DistroWatch 列出的主要镜像容量如下:
| 镜像 | 容量 |
|---|---|
| x86_64 Standard | 2,343 MB |
| AArch64 Standard | 2,272 MB |
| RISC-V Standard | 2,062 MB |
| Raspberry Pi 镜像 | 3,833 MB |
全部镜像及 SHA-256、BLAKE3 校验值均可在官方 GitHub Release 页面获取。普通 x86_64 Standard 镜像的 SHA-256 校验值为:
a78f84adbcc942feb2640c613e5bd88e11b33e843e65bc41be252ca9c2747953
从 0.3.5.1 升级前必须完整备份
Start9 特别提醒,0.4.0 与 0.3.x 本质上是两套不同的操作系统。升级不是普通的软件包更新,跳过步骤或自行调整迁移流程可能造成数据丢失。
现有用户在升级前至少需要:
- 先将 StartOS 更新到 0.3.5.1;
- 将所有已安装服务更新至兼容的最新版本;
- 检查 Ghost、Synapse、Jam 等需要特殊处理的服务;
- 停止所有服务并等待其完全退出;
- 创建包含所有服务的完整备份;
- 按照官方 0.4.0 升级指南执行迁移;
- 升级后再次更新所有服务,并立即创建一份新的 0.4.0 备份。
StartOS 0.3.5.1 与 0.4.0 的备份格式完全不兼容。旧备份不能恢复到 0.4.0,新备份也不能用于恢复 0.3.5.1。因此,升级前的备份只能用于回退旧系统,升级成功后必须重新备份。
Raspberry Pi 不能执行就地 OTA 迁移,需要将 0.4.0 镜像重新写入 microSD 卡;当前正式支持的型号仅为 Raspberry Pi 4。
总体而言,StartOS 0.4.0 更接近一次新平台发布,而不是传统意义上的小版本更新。新的 LXC 运行时、S9PK 软件包、网络和备份架构,为 Start9 后续扩展自托管应用和硬件平台建立了新的基础;但系统跨度较大,现有用户在迁移时也必须比常规升级更加谨慎。

















