Tutorial

Ubuntu 24.04 LTS Server Guide: What Changed and What You Need to Know

April 27, 2026

Back to Blog

Ubuntu 24.04 LTS (Noble Numbat), released in April 2024, is the latest Long Term Support release with security updates guaranteed until 2029 and extended support available until 2034. For server administrators, LTS releases are the backbone of production infrastructure. This guide covers everything you need to know about 24.04: what changed from 22.04, the gotchas that will trip you up during upgrades, and the performance and security improvements that make the upgrade worthwhile.

LTS means stability. Ubuntu releases a new LTS version every two years. For servers, you should almost always use LTS releases. Non-LTS releases (23.04, 23.10) have only 9 months of support — far too short for production infrastructure.

What is New in Ubuntu 24.04 LTS

6.8
Linux Kernel Version

Up from 5.15 in 22.04. Brings improved hardware support, better performance for AMD and Intel processors, and enhanced security features including improved eBPF support.

255
Systemd Version

Up from 249 in 22.04. Improved boot speed, better container support, enhanced security directives, and refined timer functionality.

Kernel 6.8 Highlights for Servers

  • Intel Thread Director improvements for hybrid CPU scheduling on newer server processors
  • bcachefs filesystem available as a technology preview (ext4 and XFS remain the recommended choices)
  • Improved io_uring performance for high-throughput I/O workloads
  • Better NUMA balancing on multi-socket servers
  • Enhanced BPF for advanced networking and observability
  • Landlock LSM improvements for application sandboxing
  • Rust in the kernel infrastructure (foundations for future Rust drivers)
$ uname -r 6.8.0-101-generic $ cat /etc/os-release | head -4 PRETTY_NAME="Ubuntu 24.04.3 LTS" NAME="Ubuntu" VERSION_ID="24.04" VERSION="24.04.3 LTS (Noble Numbat)"

Package Version Changes

Ubuntu 24.04 ships with significantly updated packages across the board. Here is what server administrators need to know.

Package22.04 LTS24.04 LTSNotes
Linux Kernel5.156.8Major upgrade, improved hardware support
systemd249255Better boot, container support
GCC11.413.2Performance improvements for compiled software
Python3.103.12Faster, better error messages
OpenSSL3.03.0.13Security patches, same API
OpenSSH8.99.6New features, deprecations
GNU libc2.352.39Performance improvements
curl7.818.5HTTP/3 support
Git2.342.43Performance, new features
nginx (repo)1.181.24HTTP/3, QUIC

Runtime and Language Versions

Language/Runtime22.04 Default24.04 DefaultImpact
PHP8.18.3JIT improvements, readonly properties
Node.js12.2218.19Major upgrade, add PPAs for 20/22
Ruby3.03.2YJIT compiler enabled
Go1.181.22Generics matured, range-over-func
Java (OpenJDK)11, 1717, 21Virtual threads in 21
PostgreSQL1416Logical replication improvements
MySQL8.08.0Same version, different patches

Breaking Changes: Package Renames

This is the section that will save you hours of debugging. Ubuntu 24.04 renamed several packages due to a 64-bit time_t transition. If you have scripts or Dockerfiles that install packages by name, they will break.

Critical for automation: If you use configuration management tools (Ansible, Puppet, Chef) or Dockerfiles with hardcoded package names, review this list immediately. Automated deployments will fail silently or with confusing errors.
22.04 Package Name24.04 Package NamePurpose
libaio1libaio1t64Async I/O library (MySQL depends on this)
libncurses5libncurses6Terminal handling library
libsnmp40libsnmp40t64SNMP protocol library
libldap-2.5-0libldap2LDAP client library
libmagickwand-6.q16-6libmagickwand-6.q16-7t64ImageMagick library (PHP imagick)

The t64 suffix indicates packages rebuilt for 64-bit time_t, which fixes the Year 2038 problem on 32-bit architectures. Even on 64-bit servers where this is not technically necessary, the package names changed.

Handling Package Renames in Scripts

# Bad: hardcoded package name (breaks on 24.04) apt install libaio1 E: Package 'libaio1' has no installation candidate # Good: detect and install the correct package if apt-cache show libaio1t64 >/dev/null 2>&1; then apt install -y libaio1t64 else apt install -y libaio1 fi # Alternative: use apt-cache search for dynamic detection apt-cache search --names-only '^libmagickwand' | head -1 libmagickwand-6.q16-7t64 - image manipulation library

Security Changes

AppArmor Enhancements

Ubuntu 24.04 ships with a stricter AppArmor configuration. Profiles are more restrictive by default, which can affect applications that were previously unrestricted.

$ sudo aa-status apparmor module is loaded. 42 profiles are loaded. 38 profiles are in enforce mode. 4 profiles are in complain mode. # If an application is blocked, check the logs: $ journalctl -k | grep apparmor | tail -5 # Temporarily put a profile in complain mode (log but allow): $ sudo aa-complain /usr/sbin/mysqld

Unprivileged User Namespaces

Important change: Ubuntu 24.04 restricts unprivileged user namespaces by default through AppArmor. This affects container runtimes (Docker, Podman) and some applications that use namespaces for sandboxing (like Chromium). If you run containers as non-root users, you may need to adjust AppArmor profiles.
# Check current setting $ sysctl kernel.apparmor_restrict_unprivileged_userns kernel.apparmor_restrict_unprivileged_userns = 1 # Disable restriction if needed (less secure) $ sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0

OpenSSH 9.6 Changes

OpenSSH 9.6 in Ubuntu 24.04 has notable changes that affect both clients and servers:

ChangeImpactAction Required
DSA keys deprecatedCannot use ssh-dss keys by defaultGenerate Ed25519 or RSA keys
SHA-1 RSA signatures disabledOld clients may fail to connectUpdate client SSH, or re-enable with PubkeyAcceptedAlgorithms
Keystroke timing obfuscationBetter privacy, no action neededNone
Penalty system for auth failuresAggressive IPs auto-blockedMonitor /var/log/auth.log
# Generate a modern SSH key $ ssh-keygen -t ed25519 -C "admin@server" # Check sshd config for deprecated options $ sshd -T 2>&1 | grep -i deprecated

Networking Changes

nftables as Default

Ubuntu 24.04 fully embraces nftables as the default firewall framework. While iptables commands still work through a compatibility layer (iptables-nft), native nftables commands are recommended for new configurations.

$ nft list ruleset $ iptables --version iptables v1.8.10 (nf_tables) # Note: nf_tables backend

iptables (Legacy)

iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT

nftables (Modern)

nft add rule inet filter input tcp dport {80, 443} accept

Netplan and systemd-networkd

Network configuration in 24.04 continues to use Netplan as the frontend, with systemd-networkd as the default renderer for server installations.

$ cat /etc/netplan/01-netcfg.yaml network: version: 2 renderer: networkd ethernets: enp0s31f6: dhcp4: false addresses: - 138.201.59.57/26 routes: - to: default via: 138.201.59.1 nameservers: addresses: - 185.12.64.1 - 185.12.64.2 $ sudo netplan apply

Performance Improvements

Ubuntu 24.04 delivers measurable performance gains across multiple areas, thanks to kernel 6.8, GCC 13, and optimized system libraries.

15%
Faster Boot Time

Systemd 255 and kernel improvements reduce cold boot time on typical server hardware.

8-12%
Improved I/O Throughput

Enhanced io_uring and filesystem optimizations improve database and file-serving workloads.

10%
Better Memory Management

MGLRU (Multi-Generational LRU) enabled by default for improved page reclaim under memory pressure.

5-7%
Network Throughput Gain

TCP and UDP stack improvements, better NUMA-aware networking for multi-socket servers.

Upgrade Path from 22.04

Upgrading from 22.04 to 24.04 is supported through do-release-upgrade. However, for servers, a fresh installation is often safer and cleaner.

In-Place Upgrade

1
Backup everything. Database dumps, configuration files, application code, SSL certificates. This is non-negotiable.
2
Update current system fully:
$ sudo apt update && sudo apt upgrade -y $ sudo apt dist-upgrade -y $ sudo reboot
3
Run the upgrade:
$ sudo do-release-upgrade Checking for a new Ubuntu release... New release '24.04.3 LTS' available. Run 'do-release-upgrade' to upgrade to it.
4
Post-upgrade verification:
$ lsb_release -a Distributor ID: Ubuntu Description: Ubuntu 24.04.3 LTS Release: 24.04 Codename: noble $ systemctl list-units --failed # Check for broken services $ sudo apt autoremove --purge # Clean up old packages
In-place upgrade warnings:
  • The upgrade can take 30-60 minutes and requires a reboot
  • SSH access may be temporarily interrupted (the upgrade opens a fallback SSH on port 1022)
  • Custom PPAs will be disabled and must be re-enabled manually
  • Modified configuration files will prompt for keep/replace decisions
  • Third-party kernel modules may need recompilation

Fresh Install vs. Upgrade

FactorIn-Place UpgradeFresh Install
Downtime30-60 minutes2-4 hours (including data migration)
Configuration preservedYes (mostly)Manual reconfiguration needed
Clean systemLegacy config cruft remainsPristine
Risk of breakageMediumLow
Best forSimple setups, few customizationsComplex setups, production servers

Compatibility Considerations

Before upgrading, check these common compatibility issues:

Missing APT Packages

Some packages available on 22.04 are not in 24.04's default repositories or have been renamed. Common ones to watch for:

# Packages that may need PPA or manual installation on 24.04: $ apt-cache policy libenchant-2-2 libmaxminddb0 libuv1 liblua5.3-0 # Check if a binary works (library compatibility) $ ldd /opt/myapp/bin/server | grep "not found" libldap-2.5.so.0 => not found libicu70.so => not found # Solution: install compatibility libraries or rebuild

OS Version Detection in Scripts

# Reliable OS detection (works on minimal installs too) $ . /etc/os-release && echo $VERSION_ID 24.04 # Do NOT rely on lsb_release (not installed on minimal Docker images) $ lsb_release -rs # May fail with "command not found"

Binaries Compiled on 22.04

Binaries compiled on Ubuntu 22.04 generally work on 24.04, but may require compatibility libraries if they link against older versions of shared libraries. Common issues include:

Library Version Mismatches

Libraries like libicu change their SO version between releases. A binary compiled against libicu70.so (22.04) will not find libicu74.so (24.04) automatically.

Fix: Install compatibility libraries or create symlinks, or recompile the binary on 24.04.

glibc Forward Compatibility

Binaries compiled on 22.04 (glibc 2.35) work on 24.04 (glibc 2.39) because glibc is backward compatible. The reverse is NOT true — binaries compiled on 24.04 may not work on 22.04.

Tip: For maximum compatibility, compile binaries on the oldest supported OS.

Docker on 24.04

Docker works well on Ubuntu 24.04, but there are a few considerations:

# Install Docker on 24.04 $ curl -fsSL https://get.docker.com | sudo sh $ sudo usermod -aG docker $USER # Verify cgroup v2 (default on 24.04) $ stat -fc %T /sys/fs/cgroup cgroup2fs
Cgroups v2: Ubuntu 24.04 uses cgroups v2 exclusively. This is the modern resource management interface and is fully supported by Docker, Kubernetes, and all major container runtimes. If you have legacy scripts that read from /sys/fs/cgroup/cpu/ (cgroups v1 paths), they need to be updated to use /sys/fs/cgroup/ (unified hierarchy).

Server Hardening Checklist for 24.04

After a fresh 24.04 installation or upgrade, apply these hardening steps:

  • Update all packages: apt update && apt upgrade -y
  • Enable automatic security updates: dpkg-reconfigure unattended-upgrades
  • Configure firewall: ufw enable and allow only required ports
  • Harden SSH: disable password auth, disable root login, change default port
  • Set up fail2ban for brute-force protection
  • Configure time synchronization: timedatectl set-ntp true
  • Set proper file permissions on sensitive directories
  • Review AppArmor profiles for custom applications
  • Enable and configure journald log limits
  • Set up swap space (covered in our swap guide)
# Quick hardening commands $ sudo ufw default deny incoming $ sudo ufw default allow outgoing $ sudo ufw allow 22/tcp $ sudo ufw allow 80/tcp $ sudo ufw allow 443/tcp $ sudo ufw enable $ sudo apt install fail2ban -y $ sudo systemctl enable fail2ban # Verify time sync $ timedatectl Local time: Mon 2026-03-17 12:00:00 UTC Universal time: Mon 2026-03-17 12:00:00 UTC RTC time: Mon 2026-03-17 12:00:00 Time zone: UTC (UTC, +0000) System clock synchronized: yes NTP service: active

Should You Upgrade?

Upgrade Now If...

  • You need kernel 6.8 features (hardware support, security)
  • Your applications require newer runtime versions
  • You are deploying new servers (always use latest LTS)
  • 22.04 standard support ends in April 2027

Stay on 22.04 If...

  • Your stack is stable and there is no compelling reason to change
  • You rely on packages that are not yet available for 24.04
  • You have heavily customized kernel modules
  • You can wait for 24.04.2 or later point releases for extra stability

Summary

  • Ubuntu 24.04 LTS ships with kernel 6.8, systemd 255, and significantly updated packages
  • Watch out for package renames (t64 suffix) in automated scripts and Dockerfiles
  • OpenSSH 9.6 deprecates DSA keys and SHA-1 signatures — update your keys
  • nftables is the default firewall framework; iptables works through a compatibility layer
  • Cgroups v2 is the only cgroup version; update scripts that reference v1 paths
  • AppArmor is stricter; custom applications may need profile adjustments
  • Performance improvements of 8-15% across boot time, I/O, and networking
  • For production servers, test the upgrade in a staging environment first
Panelica and Ubuntu 24.04: Panelica fully supports Ubuntu 24.04 LTS with all 20 services tested and optimized for the new release. Installation on a fresh 24.04 server takes under 3 minutes, with all package dependencies and compatibility libraries handled automatically. Whether you are deploying on 22.04 or 24.04, Panelica provides the same reliable server management experience.
Share:
See the Demo