NetworkManager keeps most Fedora desktops, laptops, and many servers online, so disable NetworkManager on Fedora only when another network manager is ready to take over or you are isolating a specific conflict. The safe path is to identify the active connection, keep local or out-of-band access available, and avoid stopping the daemon from the same SSH session you depend on.
Current Fedora releases still package NetworkManager as the main connection manager, while systemd-networkd is available for simpler headless, router, bridge, or lab-style setups. A good disable plan separates temporary tests from persistent boot changes, then keeps rollback commands close enough to use from a console.
Disable NetworkManager on Fedora
Check the NetworkManager Service State
Start by checking whether NetworkManager is running, whether it starts at boot, and which interfaces it currently manages.
These commands use
sudoonly when a system change needs administrator access. If your account cannot run administrative commands yet, add your account to Fedora’s wheel group with the guide to add a user to sudoers on Fedora.
systemctl is-active NetworkManager.service
systemctl is-enabled NetworkManager.service
nmcli -t -f RUNNING,STATE general
nmcli device status
A normal Fedora system with NetworkManager handling one Ethernet connection looks similar to this:
active enabled running:connected DEVICE TYPE STATE CONNECTION ens160 ethernet connected Wired connection 1 lo loopback connected (externally) lo
Note the device name and connection profile before making changes. This output shows ens160 as the interface and Wired connection 1 as the NetworkManager profile attached to it.
Choose the Least Risky NetworkManager Disable Method
Many Fedora networking problems do not require turning off the whole daemon. Use the narrowest option that matches the issue you are solving.
| Goal | Better Starting Point | Persistence | Risk |
|---|---|---|---|
| Short Wi-Fi test | nmcli radio wifi off | Until Wi-Fi is turned back on | Low for wired systems, disruptive on Wi-Fi-only systems |
| Prevent one profile from reconnecting | nmcli connection modify "Name" connection.autoconnect no | Persistent for that profile | Can prevent reconnect after a link bounce or reboot if it is the active remote profile |
| Boot delay only | Disable NetworkManager-wait-online.service | Persistent | Low, because NetworkManager still manages connections |
| Stop NetworkManager after next reboot | Disable NetworkManager.service | Persistent after reboot | High unless another manager is configured |
| Stop NetworkManager now | Stop NetworkManager.service | Runtime only unless also disabled | High, use a local console |
| Prevent automatic activation | Mask NetworkManager.service | Persistent until unmasked | Highest, use only after a replacement works |
The NetworkManager reference for nmcli documents that nmcli networking off deactivates all interfaces managed by NetworkManager. Treat that command like a live disconnect button, not a harmless preference toggle.
Disable NetworkManager Wait Online on Fedora
If your real problem is a slow boot, disable the wait-online helper before touching the main NetworkManager service. NetworkManager-wait-online.service waits for network readiness for units that depend on network-online.target; it does not manage your interface addresses.
Disabling NetworkManager-wait-online.service affects only NetworkManager’s wait-online helper. If you later switch to systemd-networkd, Fedora may enable the separate systemd-networkd-wait-online.service unit for the same network-online.target dependency.
sudo systemctl disable NetworkManager-wait-online.service
Confirm the wait-online unit is disabled while the main daemon remains active:
systemctl is-enabled NetworkManager-wait-online.service
systemctl is-active NetworkManager.service
disabled active
Re-enable the wait-online unit later if a service needs Fedora to wait for network connectivity before continuing boot:
sudo systemctl enable NetworkManager-wait-online.service
Disable NetworkManager at Boot on Fedora
Disabling the service prevents NetworkManager from starting automatically after the next boot. It does not stop the active daemon immediately, which makes it useful when you are staging a replacement from a local console or a maintenance window.
Do not reboot after this command until another network manager or a known-good static configuration is ready. A Fedora system with no network manager at boot can come back without an IP address.
sudo systemctl disable NetworkManager.service NetworkManager-wait-online.service
Check the boot state:
systemctl is-enabled NetworkManager.service
systemctl is-enabled NetworkManager-wait-online.service
disabled disabled
If the daemon is still active, that is expected. The current session keeps running until you stop the service, reboot, or NetworkManager exits for another reason.
Stop NetworkManager Immediately on Fedora
Stopping NetworkManager disconnects interfaces that depend on it. Use this only from a local console, a VM console, IPMI, a hypervisor console, or another access path that does not depend on the Fedora network connection you are about to interrupt.
If you are connected over SSH, keep that session open and use another console for the stop command. For safer remote administration practices, review the guide to install and enable SSH on Fedora before changing network services.
sudo systemctl stop NetworkManager.service
Verify the daemon is stopped:
systemctl is-active NetworkManager.service
inactive
If you used nmcli networking off instead of stopping the service, turn NetworkManager networking back on instead:
sudo nmcli networking on
Switch Fedora from NetworkManager to systemd-networkd
systemd-networkd fits simple headless systems, static lab hosts, routers, and minimal environments where file-based network units are easier to audit than NetworkManager profiles. Fedora packages both components as systemd subpackages; the Fedora package pages for systemd-networkd and systemd-resolved track current release builds.
Install the networkd and resolver components if your Fedora image does not already include them. On many current Fedora systems, DNF simply reports that they are already installed.
sudo dnf install systemd-networkd systemd-resolved
Confirm the networkd and resolver commands are available:
command -v networkctl resolvectl
/usr/bin/networkctl /usr/bin/resolvectl
Identify the interface name before writing a networkd file. Example output can include different interface names and MAC addresses on your system:
ip -br link
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP> ens160 UP 00:0c:29:4b:c2:42 <BROADCAST,MULTICAST,UP,LOWER_UP>
For a DHCP-based Ethernet interface, set a shell variable to the real interface name and create a matching .network file:
NETWORK_IFACE=ens160
printf '%s\n' \
'[Match]' \
"Name=${NETWORK_IFACE}" \
'' \
'[Network]' \
'DHCP=yes' | sudo tee "/etc/systemd/network/10-${NETWORK_IFACE}.network" > /dev/null
The pipeline uses sudo tee because /etc/systemd/network is root-owned. The > /dev/null redirect hides the copy that tee would otherwise echo back to the terminal.
Replace ens160 with your interface name. For static addressing, edit the same file and use Address=, Gateway=, and DNS= values that match your network; do not copy placeholder addresses from another host.
Stage the boot-time handoff so networkd starts on the next boot and NetworkManager does not:
sudo systemctl enable systemd-networkd.service systemd-resolved.service
sudo systemctl disable NetworkManager.service NetworkManager-wait-online.service
Enabling systemd-networkd.service can also enable systemd-networkd-wait-online.service. Leave that helper enabled when boot services need network-online.target; disable it later only if you confirm it is causing boot delays.
Reboot from a console you can recover from if the network file contains a mistake:
sudo reboot
After Fedora comes back, replace ens160 with your interface name and verify that networkd is managing the interface. The host should have an address, a default route, and DNS.
networkctl status ens160 --no-pager
ip route
resolvectl status
If you need to switch live instead of waiting for a reboot, do it from a local console. Starting networkd and stopping NetworkManager in the wrong order can leave both managers fighting for the interface or leave neither one configuring it.
Mask NetworkManager on Fedora
Masking is stronger than disabling. It links the unit to /dev/null, which prevents manual starts and dependency-triggered starts until you unmask it. Use this only after the replacement manager works and you are sure no desktop app, VPN plugin, or connection workflow still needs NetworkManager.
sudo systemctl mask NetworkManager.service
Confirm the unit is masked:
systemctl is-enabled NetworkManager.service
masked
To allow NetworkManager to start again later, unmask it first:
sudo systemctl unmask NetworkManager.service
Re-enable NetworkManager on Fedora
Return to NetworkManager by unmasking the service if needed, enabling it at boot, and starting it immediately.
sudo systemctl unmask NetworkManager.service
sudo systemctl enable --now NetworkManager.service
sudo nmcli networking on
If you switched to networkd, confirm NetworkManager is active before disabling networkd:
systemctl is-active NetworkManager.service
nmcli -t -f RUNNING,STATE general
active running:connected
Once NetworkManager has the connection, disable networkd, disable its wait-online helper, and remove only the networkd file you created for this handoff.
sudo systemctl disable --now systemd-networkd.service systemd-networkd-wait-online.service
sudo rm -f /etc/systemd/network/10-ens160.network
Replace 10-ens160.network with the file name you created. Then confirm NetworkManager is running and connected:
systemctl is-active NetworkManager.service
nmcli -t -f RUNNING,STATE general
nmcli device status
active running:connected DEVICE TYPE STATE CONNECTION ens160 ethernet connected Wired connection 1 lo loopback connected (externally) lo
Troubleshoot NetworkManager Disable Issues
SSH Drops After Stopping NetworkManager
A dropped SSH session usually means the active interface was managed by NetworkManager. Use a local console, hypervisor console, or out-of-band management session to start NetworkManager again.
sudo systemctl start NetworkManager.service
sudo nmcli networking on
nmcli device status
If the machine rebooted into a disabled NetworkManager state, boot from console access and re-enable it with the recovery commands for NetworkManager. Once access is stable, check the guide to install Firewalld on Fedora if the service is running but remote connections are still blocked.
NetworkManager Starts Again After Being Disabled
A disabled unit can still be started manually or by another dependency. If you have already confirmed a replacement manager works, run the mask command from that replacement-managed connection or a local console so systemd refuses NetworkManager start requests.
sudo systemctl stop NetworkManager.service
sudo systemctl mask NetworkManager.service
If masking breaks a desktop networking app, VPN plugin, or Wi-Fi workflow, unmask and re-enable NetworkManager instead of forcing the replacement path.
systemd-networkd Has No Address After Reboot
Check whether the [Match] section uses the real interface name and whether DHCP or static addressing is configured correctly.
networkctl status ens160 --no-pager
ip -br addr
journalctl -u systemd-networkd --no-pager -n 40
If networkctl shows the interface as unmanaged or missing, fix the file under /etc/systemd/network/, reload networkd, and check again.
sudo systemctl restart systemd-networkd.service
networkctl status ens160 --no-pager
DNS Fails After Switching Away from NetworkManager
Fedora commonly uses systemd-resolved for name resolution. Confirm the resolver is active and that /etc/resolv.conf points at systemd’s resolver file.
systemctl is-active systemd-resolved.service
readlink -f /etc/resolv.conf
active /run/systemd/resolve/stub-resolv.conf
Use resolvectl status to inspect the DNS servers attached to the active link:
resolvectl status
If the resolver is inactive, enable it and retest DNS. If the link output points somewhere unexpected, review any previous DNS-over-TLS, VPN, container, or manual resolver changes before replacing the file.
sudo systemctl enable --now systemd-resolved.service
Conclusion
NetworkManager is disabled only as far as your Fedora system needs, from a harmless wait-online change to a full handoff to systemd-networkd. Keep a recovery console nearby, verify the replacement manager before rebooting, and use the guides to install Firewalld on Fedora and install and enable SSH on Fedora before trusting a remote system again.


Formatting tips for your comment
You can use basic HTML to format your comment. Useful tags currently allowed in published comments:
<code>command</code>command<strong>bold</strong><em>italic</em><blockquote>quote</blockquote>