Founder
November 2025 Devlog
November brought DNS over HTTPS support, a major Swift upgrade for Apple platforms, significant Linux client improvements, and enhanced Gateway connection reliability.
DNS over HTTPS Support
Clients now support DNS over HTTPS (DoH) for encrypted DNS resolution.1 This feature enables administrators to configure secure DNS providers directly from the portal, with options for system resolvers, secure DNS providers, or custom DNS servers.2 The implementation includes a dedicated HTTP/2 client with pluggable sockets3 and handles the complexities of DoH server bootstrapping, where the DoH server's domain must first be resolved using system DNS resolvers before encrypted queries can begin.
Swift 6.2 Upgrade
The Apple clients underwent a substantial upgrade from Swift 5 to Swift 6.2 with full strict concurrency checking enabled.4 This migration eliminates entire classes of data race bugs that were previously only caught through testing or production crashes. Swift 6.2's "Approachable Concurrency" features were enabled to further improve code safety,5 and the IPC client was converted from an actor to a stateless enum for better performance.6 Unsafe code instances were systematically removed from the codebase.78
Linux Client Improvements
The GUI client now uses the Wayland rendering backend on Linux, enabling compatibility with newer distributions like Fedora 43 where Wayland is the only available compositor.9 This required implementing custom client-side decorations including a minimalistic title bar.
Device identification now derives from /etc/machine-id on systems with systemd, eliminating startup failures when the user hasn't yet joined the firezone-client group.10
The installer also automatically adds users to this group during installation.11
Debian/Ubuntu Deployment
A new Debian/Ubuntu tab in the portal provides streamlined Gateway deployment instructions for APT-based systems.12 Preview packages are automatically promoted to stable on release.13 This complements the native Debian packaging introduced in October.
Gateway Connection Reliability
ICE timeout values were extended to reduce false-positive disconnects where a Gateway incorrectly believes a Client has departed.14 The DNS resource NAT table now tracks last inbound/outbound packet times along with FIN and RST flags, enabling proper observation of TCP shutdowns and faster cleanup of unconfirmed entries.15 A fix prevents outbound ICMP errors from being incorrectly routed through the tunnel.16
DNS Resolution Improvements
Several fixes improve DNS reliability. The portal hostname is now re-resolved on WebSocket connection failures, handling cases where the local IP stack or DNS records change during operation.17 Tunnelled DNS queries are now indexed by source socket in addition to server address and query ID, fixing issues where macOS sends queries with identical IDs from different sockets.18 DNS server ordering from the system configuration is now preserved.19
Apple MDM Enhancements
A new hideResourceList configuration option, accessible via MDM provisioning profiles, allows administrators to hide the resource list from end users who don't need visibility into available resources.20
Footnotes
-
feat(portal): extend DNS settings to allow for DoH providers ↩
-
refactor(apple): Upgrade to Swift 6.2 with concurrency checks ↩
-
chore(apple): Enable Swift 6.2 Approachable Concurrency features ↩
-
refactor(apple): Convert IPCClient from actor to stateless enum ↩
-
feat(linux): automatically add user to
firezone-clientgroup ↩ -
fix(connlib): index tunnelled DNS queries by source socket ↩