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.
What is New in Ubuntu 24.04 LTS
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.
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)
Package Version Changes
Ubuntu 24.04 ships with significantly updated packages across the board. Here is what server administrators need to know.
| Package | 22.04 LTS | 24.04 LTS | Notes |
|---|---|---|---|
| Linux Kernel | 5.15 | 6.8 | Major upgrade, improved hardware support |
| systemd | 249 | 255 | Better boot, container support |
| GCC | 11.4 | 13.2 | Performance improvements for compiled software |
| Python | 3.10 | 3.12 | Faster, better error messages |
| OpenSSL | 3.0 | 3.0.13 | Security patches, same API |
| OpenSSH | 8.9 | 9.6 | New features, deprecations |
| GNU libc | 2.35 | 2.39 | Performance improvements |
| curl | 7.81 | 8.5 | HTTP/3 support |
| Git | 2.34 | 2.43 | Performance, new features |
| nginx (repo) | 1.18 | 1.24 | HTTP/3, QUIC |
Runtime and Language Versions
| Language/Runtime | 22.04 Default | 24.04 Default | Impact |
|---|---|---|---|
| PHP | 8.1 | 8.3 | JIT improvements, readonly properties |
| Node.js | 12.22 | 18.19 | Major upgrade, add PPAs for 20/22 |
| Ruby | 3.0 | 3.2 | YJIT compiler enabled |
| Go | 1.18 | 1.22 | Generics matured, range-over-func |
| Java (OpenJDK) | 11, 17 | 17, 21 | Virtual threads in 21 |
| PostgreSQL | 14 | 16 | Logical replication improvements |
| MySQL | 8.0 | 8.0 | Same 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.
| 22.04 Package Name | 24.04 Package Name | Purpose |
|---|---|---|
libaio1 | libaio1t64 | Async I/O library (MySQL depends on this) |
libncurses5 | libncurses6 | Terminal handling library |
libsnmp40 | libsnmp40t64 | SNMP protocol library |
libldap-2.5-0 | libldap2 | LDAP client library |
libmagickwand-6.q16-6 | libmagickwand-6.q16-7t64 | ImageMagick 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
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.
Unprivileged User Namespaces
OpenSSH 9.6 Changes
OpenSSH 9.6 in Ubuntu 24.04 has notable changes that affect both clients and servers:
| Change | Impact | Action Required |
|---|---|---|
| DSA keys deprecated | Cannot use ssh-dss keys by default | Generate Ed25519 or RSA keys |
| SHA-1 RSA signatures disabled | Old clients may fail to connect | Update client SSH, or re-enable with PubkeyAcceptedAlgorithms |
| Keystroke timing obfuscation | Better privacy, no action needed | None |
| Penalty system for auth failures | Aggressive IPs auto-blocked | Monitor /var/log/auth.log |
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.
iptables (Legacy)
nftables (Modern)
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.
Performance Improvements
Ubuntu 24.04 delivers measurable performance gains across multiple areas, thanks to kernel 6.8, GCC 13, and optimized system libraries.
Systemd 255 and kernel improvements reduce cold boot time on typical server hardware.
Enhanced io_uring and filesystem optimizations improve database and file-serving workloads.
MGLRU (Multi-Generational LRU) enabled by default for improved page reclaim under memory pressure.
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
- 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
| Factor | In-Place Upgrade | Fresh Install |
|---|---|---|
| Downtime | 30-60 minutes | 2-4 hours (including data migration) |
| Configuration preserved | Yes (mostly) | Manual reconfiguration needed |
| Clean system | Legacy config cruft remains | Pristine |
| Risk of breakage | Medium | Low |
| Best for | Simple setups, few customizations | Complex 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:
OS Version Detection in Scripts
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:
/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 enableand 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)
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