SSD Nodes Learn 🎉 VPS $5.50/月起
指南 Matt Connor作者: Matt Connor · 已更新 2026-08-13

Linux kernel 7.1 伺服器有哪些新功能?

Linux kernel 7.1 於 2026 年 6 月 14 日發布,本文說明 VPS 實際受益的變更、如何用 uname -r 檢查目前版本,以及各發行版何時可能提供。

Linux kernel 7.1 的新功能

Linux kernel 7.1 於 14 June 2026 發布,距離 7.0 發布 9 週。對 VPS(virtual private server)租戶而言,真正重要的變更集中在四個領域:儲存與檔案系統、網路、記憶體管理,以及程序與容器控制。其餘內容大多是無頭伺服器不會載入的桌面與圖形功能。

但你需要先了解另一個問題。你的伺服器幾乎不可能正在執行 7.1,而且很長一段時間內都不會。kernel.org 並未將 7.1 列為 longterm 版本。截至 11 August 2026,longterm 分支為 6.18、6.12、6.6、6.1、5.15 與 5.10;主流伺服器發行版都以其中一個分支為基礎,或使用自行維護的分支。「kernel 的新功能」與「伺服器上的新功能」之間通常相隔數年,因此本指南會同時說明這兩個面向。

目前 VPS 執行哪個 kernel

uname -r
uname -srm
systemd-detect-virt

uname -r 會顯示目前執行中的 kernel release。在 Ubuntu 24.04 上,結果會像 6.8.0-79-generic。第一個連字號前的部分是 upstream 版本線;其後的內容是發行版自行編譯的 build number,與 upstream 完全不同步。Canonical 的 6.8.0-79 包含從較新 kernel 回移植的數千項修正,因此並不是 Linus 在 2024 年 3 月標記為 6.8 的那份程式碼。這就是為什麼「我的 kernel 很舊」所表達的資訊,通常沒有聽起來那麼多。功能可能很舊,但安全性修正通常不是。

systemd-detect-virt 會告訴你是否能變更 kernel。在完整虛擬機器上,你會自行開機載入 kernel image,升級也是真正的 kernel 升級,因此會輸出 kvm。在 container virtualisation 上,主機共用 kernel,因此會輸出 lxcopenvz。在 container 方案中,uname -r 顯示的是 provider 的 kernel;安裝 kernel package 不會改變任何可供你開機載入的內容,除非 provider 將主機重新開機並載入較新的 kernel,否則此 release 中的任何功能都無法使用。規劃任何 kernel 作業前,先執行這項檢查。

ChartDefault server kernel by platform, and upstream releases behind 7.1, checked 11 August 2026
The data behind this chart
[
  {
    "distro": "Ubuntu 26.04 LTS (7.0)",
    "releases_behind_7_1": 1,
    "notes": "GA kernel, shipped with the April 2026 release"
  },
  {
    "distro": "Ubuntu 24.04 LTS, HWE (6.17)",
    "releases_behind_7_1": 4,
    "notes": "6.17 came with 24.04.4; 7.0 is rolling out ahead of 24.04.5 on 27 August 2026"
  },
  {
    "distro": "Debian 13 trixie (6.12)",
    "releases_behind_7_1": 9,
    "notes": "upstream longterm line, kernel.org projected EOL December 2028"
  },
  {
    "distro": "RHEL 10 and its rebuilds (6.12)",
    "releases_behind_7_1": 9,
    "notes": "Red Hat backports fixes into its own frozen 6.12 stream"
  },
  {
    "distro": "Ubuntu 24.04 LTS, GA (6.8)",
    "releases_behind_7_1": 13,
    "notes": "the default unless you install the HWE stack"
  },
  {
    "distro": "Ubuntu 22.04 LTS, GA (5.15)",
    "releases_behind_7_1": 26,
    "notes": "upstream longterm line, kernel.org projected EOL December 2026"
  }
]

共有 6 個平台,沒有任何一個會載入 7.1。最新的是 Ubuntu 26.04 LTS (7.0),比 upstream release 少 1 個版本。仍在支援期間的最舊版本,少 26 個版本。Ubuntu 24.04 的預設 GA kernel 落後 13 個版本;Debian 13 與 RHEL 10 則在 6.12 longterm 版本線上落後 9 個版本。以 release 數量計算只是粗略估算,因為這沒有納入發行版回移植的所有內容,但仍能呈現差距的概況。如果你正在評估要使用其中哪一個版本,伺服器採用 LTS 或 interim release 的取捨 才是這些數字背後要作的決定。

7.1 的儲存與檔案系統

7.1 新增在檔案系統內產生及驗證 T10 PI(protection information)的能力,不再只於區塊層處理,並支援更彈性的 T10 對齊方式。T10 PI 是附加在每個區塊上的額外位元組,包含 checksum,以及識別資料所屬區塊的標籤。因此,系統能攔截錯誤導向或撕裂寫入,不會將其當成有效資料傳回。對 VPS 租戶而言,限制在於硬體。裝置必須公開完整性中繼資料,而虛擬磁碟通常不會提供這項資訊。

ls /sys/block/vda/integrity/

在大多數 VPS 磁碟上,這會回傳 No such file or directory,因為只有在裝置註冊完整性支援後,區塊層才會建立 integrity 目錄。這個錯誤在此情況下是正常結果,不代表故障。如果你想在進一步閱讀儲存功能前確認磁碟的實際類型,應先確認 VPS 磁碟是否確實為 NVMe;而VPS 上 NVMe 與 SATA SSD 的差異則說明了為何這個答案會改變你的數值。

Btrfs 修正了記憶體壓力下 copy-on-write 放大的問題,也變更了追蹤範圍中第一個 extent 的清除流程。合併請求所列的範例工作負載顯示,吞吐量提高了 10%。其關機操作不再標記為實驗性功能。XFS 改善了透過 iomap 執行的 zero range flushing 與查找,並在 real-time group geometry 中加入 write pointer,為 zoned devices 奠定基礎。NTFS 在此版本中全面重寫,具備完整寫入支援並轉換至 iomap;如果你曾在伺服器上掛載 Windows 電腦的磁碟映像檔,這項變更便相當重要。

其他值得注意的儲存變更包括:ublk(user-space block driver)新增 zero-copy I/O;io_uring 新增 SCSI passthrough commands;SED-OPAL self-encrypting drive 支援新增 STACK_RESET command,並擴充 single user mode;新增用於 direct-access devices 的 fs-dax character driver;VFS 將 inode->i_inounsigned long 擴大至 u64,移除 32-bit builds 的 inode number 上限。在網路檔案系統方面,核心內建的 NFS server 現在可透過 sign_fh mount option 為其 file handles 簽章,而 CIFS client 也支援 O_TMPFILE

網路:佇列租用,以及容器可獲得的功能

網路方面最重要的變更是硬體佇列租用。虛擬網路裝置現在可以租用繫結至實體網路裝置實體佇列的佇列,並作為該佇列的代理。這項功能主要服務容器。過去,想使用 AF_XDP(address family express data path;這種 socket 類型可將原始封包直接交給使用者空間,不必複製並逐層經過網路堆疊)的容器,幾乎必須取得整個裝置。使用租用的佇列後,容器可取得一個硬體佇列,以原生速度執行 AF_XDP 與 memory provider,而主機保留 NIC 的其餘部分。這項功能也與 io_uring zero-copy 路徑中的 AF_XDP 支援一併提供。

在一般功能方面,sockfs 中的 socket 現在接受 user.* extended attributes。以路徑為基礎的 AF_UNIX socket 原本就會繼承底層檔案系統的 xattr 支援,但只存在於 sockfs 中的 socket 則沒有這項支援。現在,程序可以為 socket 加上標籤,eBPF 程式也能依該標籤進行篩選。

這次移除了兩項功能。UDP-Lite 因無人使用而移除。IPv6 不再支援編譯為可載入模組;若要使用 IPv6,必須將它編譯進核心。第二項變更在任何發行版核心中都不會顯現,因為常見的伺服器發行版早已將 IPv6 編譯進核心。

記憶體管理:swap table 已完成

swap 重構進入第三階段。本階段移除靜態 swap map,swap 計數現在直接儲存在 swap table 中。官方公布的節省量約為靜態 swap metadata 的 30%。無論是否實際使用 swap,kernel 都會依 swap 裝置的大小配置這部分記憶體。以絕對數值來看,小型 swap file 的節省量不大,且會隨設定的 swap 大小增加。

MGLRU(multi-generational least recently used,較新的 page reclaim 演算法)現在可以批次檢查頁面的 young flag,不必一次檢查一頁。這項變更公布的數據,是在 Arm64 32-core 伺服器上改善超過 60%。批次處理在每頁成本較高的情況下效益最大,因此這個數字來自大型 Arm 機器。如果您執行的是 Arm VPS,而不是 x86 VPS,這是 7.1 中最可能在您自己的測量結果中顯現的變更;不過在 2 或 4 cores 上,不會達到相同幅度。

此外,已移除從即將終止的 memory cgroups 移出 transfer 的處理,khugepaged 掃描所需的 CPU 較少,maple tree 也針對大型 node 的處理進行大幅重構。這些都不需要設定。您只會注意到 system time 略微降低。

排程器:sched_ext 子排程器,以及預設啟用 FRED

sched_ext 是可擴充的排程器類別,可讓您將 CPU 排程器撰寫為 BPF 程式,並在執行期間載入。此功能已在 6.12 中加入。7.1 新增子排程器的核心結構,讓控制群組日後能使用自己的排程器。請仔細閱讀這句話。7.1 尚未完成這項實作,尤其缺少 enqueue 路徑,因此這是後續版本的基礎工作,現階段無法直接啟用。

Intel FRED(flexible return and event delivery)現在會在支援的硬體上預設啟用。FRED 以更簡潔的事件傳遞路徑取代傳統的 x86 事件傳遞路徑;自 6.9 起,核心便已支援 FRED,但當時須透過 fred=on boot argument 啟用。改為預設啟用,表示目前出貨的硬體已通過充分測試。迄今公布的測量結果顯示,在 I/O 負載較高的工作負載上可提升 4% 至 7%;這些數據來自 Phoronix 對用戶端 silicon 的測試,因此在伺服器上應先測量自己的工作負載,不要直接將這項提升納入預算。

Proxy execution 新增了 donor migration,可在提升遠端 lock owner 優先權時遷移 donor;EEVDF 修正了與負 lag 相關的問題,高解析度計時器核心也大幅重寫。這些變更可改善延遲品質,但沒有任何設定檔可直接控制。

clone3() 中的新程序與容器控制功能

clone3() 新增了 3 個旗標,每個旗標都填補了監控程式多年來必須手動處理的缺口。CLONE_AUTOREAP 會讓子程序在結束時自行回收,因此不會成為等待父程序呼叫 wait() 的殭屍程序,即使父程序可能永遠不會呼叫該函式。CLONE_NNP 會在建立子程序時設定 no_new_privs,消除 clone 完成後、子程序自行設定旗標前的時間差。CLONE_PIDFD_AUTOKILL 會將子程序的生命週期繫結至回傳給父程序的 pidfd:關閉 pidfd 後,子程序就會被終止,因此監控程式結束時不會留下持續執行的孤兒程序。

Mount namespace 也獲得相同的處理方式。CLONE_EMPTY_MNTNS 搭配 clone3(),以及 UNSHARE_EMPTY_MNTNS 搭配 unshare(),會建立空的 mount namespace,而不是先完整複製父程序的 mount,再由 runtime 逐一卸載。FSMOUNT_NAMESPACE 允許 fsmount() 直接將檔案系統置入新的 namespace。Container runtime 過去 10 年一直以手動方式組合這些步驟,因此現在透過一次呼叫即可完成,runtime 不必再從包含主機 mount 的 namespace 開始。

在虛擬化方面,guest_memfd 現在支援 userfaultfd,因此 hypervisor 可以在 user space 處理 guest page fault。Arm 上受保護的 KVM 新增匿名記憶體支援,但該合併提交本身也說明此功能尚未達到 production ready。

kernel 7.1 何時會到你的伺服器

Fedora 已經提供 kernel 7.1。Fedora 44 的更新套件庫在 2026 年 7 月與 8 月期間轉移至 7.1 系列,因為 Fedora 會在同一個版本的生命週期內,將 kernel rebase 到新的穩定系列。Arch 與 openSUSE Tumbleweed 也基於相同原因提供 kernel 7.1。這些系統適合用來測試,不適合用來執行服務。

其他發行版都需要等待,而且這是刻意的設計。Debian 13 隨附 6.12,並在整個版本生命週期中維持 6.12,只將修正向後移植到該版本。RHEL 10 隨附 6.12.0,採用相同方式。Ubuntu 26.04 LTS 在 2026 年 4 月隨附 7.0。Ubuntu 24.04 LTS 提供 hardware enablement stack,可將較新版 Ubuntu 發行版中的 kernel 引入 LTS;截至 24.04.4 point release,該 stack 使用 6.17,預定在 2026 年 8 月 27 日推出的 24.04.5 中移至 7.0。

以下是常見的誤解。HWE stack 會跳到最新 interim release 所使用的 kernel,因此可能完全跳過某個 upstream 系列。Ubuntu LTS 已採用 7.0。7.1 可能永遠不會成為任何 Ubuntu LTS 的基礎版本,因為其後的 interim release 會採用更後面的系列。從 7.1 進入 LTS 的內容,是向後移植到你目前使用系列中的修正。功能大多會留在較新的系列中。

如果你確實需要在穩定伺服器上使用較新的 kernel,受支援的方式不多。

# Ubuntu 24.04 LTS: install the hardware enablement stack
sudo apt update
sudo apt install --install-recommends linux-generic-hwe-24.04
sudo reboot

# Debian 13, with trixie-backports enabled in your apt sources
apt-cache policy linux-image-amd64
sudo apt install -t trixie-backports linux-image-amd64
sudo reboot

重新開機後,確認實際載入的版本:

uname -r
dpkg -l 'linux-image-*' | grep ^ii
ls /var/run/reboot-required

uname -r 現在應顯示新的系列,而 dpkg -l 會顯示目前仍安裝的所有 kernel image。如果 uname -r 顯示舊版本,但 dpkg -l 列出新版本,表示套件已安裝,但 bootloader 的預設項目尚未變更:請檢查 GRUB 選單項目。/var/run/reboot-required 存在表示套件已更新 kernel,但之後尚未重新開機。這是已套用修補程式的伺服器仍在執行易受攻擊程式碼的最常見原因。

生產環境的 VPS 是否值得追上 7.1

不值得,原因不是單純為了謹慎。發行版核心代表一份支援合約。Canonical、Red Hat、SUSE 和 Debian 會將安全修補程式回溯套用至固定版本線,並在其隨附的使用者空間上進行測試。來自第三方封存庫的主線核心或自行建置的核心,會提供新功能,但也會讓你失去這些維護工作,因為沒有人會將修補程式回溯套用至你的建置版本。你會成為該核心的維護者。

例外情況確實存在,但範圍很有限:較舊的核心無法驅動的硬體,或你已在自己的工作負載上測得效能變更,並且非常需要這項變更,願意自行承擔後果。在 VPS 上,第一種情況幾乎不會發生,因為你看到的是虛擬硬體。除此之外,請讓發行版核心保持最新,並在系統要求時重新開機。如果發行版升級已列入計畫,從 Ubuntu 24.04 升級至 26.04 會讓你從 6.8 一步升至 7.0,這比任何單一核心套件所能提供的升幅都更大。

FAQ

如何查看 VPS 正在執行的 Linux kernel?

執行 uname -r。該指令會輸出類似 6.8.0-79-generic 的內容。第一個連字號前的數字,是發行版所採用的上游版本線;後面的內容則是發行版自有的 build number,其中包含回溯移植的修正。接著執行 systemd-detect-virt。如果輸出 lxcopenvz,表示您使用的是 container virtualisation,與主機共用 kernel,無法自行變更。如果輸出 kvm,表示您會開機載入自己的 kernel image,升級工作由您負責。

Linux 7.1 是 longterm support kernel 嗎?

不是。截至 11 August 2026,kernel.org 列出的 longterm 版本線為 6.18、6.12、6.6、6.1、5.15 和 5.10,並不包括 7.1。它是一般的 stable release,下一個 mainline release 出現後,其 stable line 很快就會停止維護。如果您需要一個已有多年修正、未來也會持續獲得多年修正的 kernel,您的發行版 kernel 通常已經符合這項條件。

Ubuntu 或 Debian 何時會提供 kernel 7.1?

它很可能永遠不會成為預設版本。Debian 13 在該版本的生命週期內維持使用 6.12,而 RHEL 10 維持使用 6.12.0。Ubuntu 26.04 LTS 採用 7.0,Ubuntu hardware enablement stack 會跳到最新 interim release 所攜帶的 kernel,因此可能完全略過某個上游版本線。Ubuntu 24.04 LTS 預定在 27 August 2026 隨 24.04.5 point release 將其 HWE kernel 移至 7.0。7.1 的修正會以 backport 方式進入較舊的版本線。其功能通常不會同步提供。

Linux 7.1 中有哪些功能實際上與 virtual private server 有關?

有 4 項。Hardware queue leasing 可讓 container 以原生速度使用一個實體 NIC queue 執行 AF_XDP。swap rework 的第三階段移除 static swap map,並據報將 kernel 為 swap device 保留的 metadata 減少 30%。MGLRU 可以批次檢查 page young flags,在多核心 Arm server 上取得的已公布效能提升最大。此外,clone3() 新增 CLONE_AUTOREAPCLONE_NNPCLONE_PIDFD_AUTOKILL,讓監督 child process 更安全。Filesystem-level T10 protection information 也已加入,但 virtual disk 很少會提供所需的完整性 metadata。

升級 kernel 會讓我的 VPS 故障嗎?

常見故障發生在開機階段。完整的 /boot 會讓 update-initramfs 在安裝期間因 No space left on device 而失敗,並使套件停留在半設定狀態:使用 sudo apt autoremove --purge 清除舊 kernel,然後重新安裝。針對舊 kernel 建置的 out-of-tree module 會停止載入,因此由 DKMS 管理的項目都必須重新建置;如果重新建置失敗,直到執行期間缺少該 module 前,通常不會顯示明顯錯誤。如果重新開機後 uname -r 仍回報舊版本,但 dpkg -l 列出新的 image,表示安裝並未故障,而是 bootloader 的預設項目沒有更新。