NetworkManager
NetworkManager is the primary network configuration service for Networking in Fedora. Most of the information you might be interested in is in the Networking page or its subpages.
Desktops and laptops
NetworkManager provides automatic network detection and configuration for the system. Once enabled, the NetworkManager service also monitors the network interfaces, and may automatically switch to the best connection at any given time. Applications that include NetworkManager support may automatically switch between on-line and off-line modes when the system gains or loses network connectivity. These facilities are most useful for modern laptops, where the user may move between wireless networks, and plug in to a variety of wired networks, but NetworkManager also provides features that are relevant to workstations and servers. Current versions support Ethernet, Wi-Fi (including WPA3 and 6 GHz), mobile broadband, VPNs, WireGuard, and a wide range of software and tunnel devices. NetworkManager requires Fedora to have drivers for the wired and wireless interfaces on the computer. Many manufacturers of modems and wireless devices provide limited support for Linux. You may need to install additional drivers or firmware on your Fedora system in order to activate these interfaces.
Servers
Fedora relies on NetworkManager for network configuration by default. This is the case also for minimal installations and server installations. For declarative, automation-friendly configuration (for example with Ansible), the Nmstate project (nmstate / nmstatectl) provides a YAML-based interface on top of NetworkManager.
Bug reports and feature requests for NetworkManager itself go to the upstream GitLab issue tracker. Issues related to interoperability with the rest of the Fedora system should be filed against the appropriate package in Red Hat Bugzilla (product Fedora).
Managing connections
NetworkManager stores each network configuration as a connection profile. Several tools can create and activate profiles:
- nmcli – the primary command-line tool; exposes the full feature set of the daemon.
- nmtui – a curses text interface (package
NetworkManager-tui), useful over SSH or without a desktop. Version 1.58 added device selection when creating profiles,/-style search of the connection list, on-demand Wi-Fi rescan, a "Show password" option, and a "Share QR…" action for Wi-Fi networks. - Graphical tools –
nm-connection-editorand the GNOME Settings network panel (packagenetwork-manager-applet), orplasma-nmon KDE Plasma.
Common nmcli operations:
nmcli device status nmcli connection show nmcli device wifi connect SSID password PASSWORD nmcli connection up "My Connection"
Configuration file formats
See Configuration for details. The default and recommended on-disk format is keyfile, stored under /etc/NetworkManager/system-connections/ (one INI-style file per profile). Keyfile has been the Fedora default since Fedora 33.
The older ifcfg-rh format (/etc/sysconfig/network-scripts/ifcfg-*) is deprecated. The NetworkManager-initscripts-ifcfg-rh plugin is no longer installed by default (since Fedora 36), and upstream has announced full removal of ifcfg support. New systems should use keyfile; existing ifcfg profiles can be converted with nmcli connection migrate. See Changes/MigrateIfcfgToKeyfile and Changes/RemoveIfcfgSupportInNM.
Daemon-wide settings live in /etc/NetworkManager/NetworkManager.conf and drop-in files under /etc/NetworkManager/conf.d/.
NetworkManager objectives
NetworkManager is a universal network configuration software used as a part of the base system on desktops, laptops and servers alike:
- Provide core network configuration features
- Expose the features through on-disk text-based configuration (keyfile)
- Expose the features through a stable D-Bus API and the
libnmlibrary - Provide CLI (
nmcli,nmtui) and GUI frontends, on top of which other frontends and tools (such as Nmstate) can be built
Features
Fully supported functionality includes:
- Configuration using the keyfile format (the ifcfg-rh format is deprecated; other formats are used with other distributions)
- CLI frontends (
nmcliandnmtui) - GUI frontends
- IPv4 and IPv6 support (static and automatic), including IPv6-only networks with CLAT/464XLAT
- D-Bus interface
- DNS handling via
systemd-resolved(default) or a local caching nameserver (dnsmasq) for split-DNS - Ethernet connections (802.3)
- Wi-Fi connections (802.11), including WPA2/WPA3, 802.1X enterprise, and 6 GHz (Wi-Fi 6E)
- VPN plugins (OpenVPN, OpenConnect, WireGuard, L2TP, IPsec/strongSwan, and others) and native WireGuard support
- Mobile broadband via USB or Bluetooth (through ModemManager)
- Software devices: bonds, teams, bridges, VLANs, MACVLAN, and tunnels including GRE, VXLAN and GENEVE
- Persistent per-device managed/unmanaged state across reboots
- Dispatcher scripts in
/etc/NetworkManager/dispatcher.d/for hooking network events
What's new in 1.58
Highlights of the current stable series (see the upstream release notes for the full list):
- CLAT (464XLAT) support, letting hosts on IPv6-only networks reach IPv4 destinations
- GENEVE tunnel interface support
- Wi-Fi: the
bandproperty now accepts6GHz, plus band display in scan results and powersave support for the iwd backend - Numerous
nmtuiusability improvements - Persistent device managed state across reboots
- Removal of the external ISC
dhclientDHCP backend (NetworkManager uses its own internal DHCP client; ISC dhclient is end-of-life upstream); Wireless Extensions support is now deprecated and disabled by default - Security hardening, including a fix for CVE-2026-10805 (hostname/MUD URL validation) and an out-of-bounds read fix in the DHCPv4 client
Feature requests and issue tracking
Historically many feature requests were tracked in the GNOME Bugzilla, which has since been retired. A number of the frequently requested capabilities are now implemented, including connection priorities and autoconnect ordering (connection.autoconnect-priority), automatically bringing up a VPN with a physical connection (connection.secondaries), captive-portal / connectivity detection, simultaneous VPN connections, IPv6 connection sharing, and import of several VPN configuration formats.
New feature requests and bug reports should be filed at the NetworkManager GitLab tracker.
Further Information
- Networking – the starting point for those who seek network-related information on the Fedora Wiki
- Fedora Documentation
- The NetworkManager website and documentation
- Source code and issue tracker
- The NetworkManager mailing list (
networkmanager@lists.freedesktop.org); chat on#nmat Libera.Chat - Nmstate – declarative network configuration on top of NetworkManager
- Local Caching Nameserver
Troubleshooting
Inspecting logs
journalctl -u NetworkManager -b # NetworkManager log for this boot nmcli general logging # show current log level nmcli general logging level DEBUG # raise verbosity temporarily
Temporarily stopping NetworkManager
systemd will restart the service unless it is masked:
sudo systemctl stop NetworkManager sudo systemctl mask NetworkManager # prevent restart until unmasked sudo systemctl unmask NetworkManager # re-enable
Imported ovpn file does not work
When you add your VPN connection (for OpenVPN for example) by using Import from file… (with an ovpn file created by a pfSense OpenVPN server instance, for example) at Settings -> Network -> VPN -> +, Tools/NetworkManager is used to handle that connection for you. If this does not work as expected, as an alternative you can try the pure client (for OpenVPN).
Connect to your VPN (OpenVPN) by running openvpn with your server-created client config file (ovpn file format).
- In the example we are using a file pfSense-UDP-1194-admin-config.ovpn that was downloaded to the Downloads folder of your home directory. It was created on a pfSense system to connect to the OpenVPN server running there (using the OpenVPN defaults: protocol UDP, port 1194, and the pfSense default user admin).
sudo openvpn ~/Downloads/pfSense-UDP-1194-admin-config.ovpn
