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 後續擴展自託管應用和硬體平台建立了新的基礎;但系統跨度較大,現有用戶在遷移時也必須比常規升級更加謹慎。

















