How to Disable NetworkManager on Fedora 44

Last updated Saturday, May 16, 2026 6:48 pm Joshua James 6 min read

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 sudo only 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.

GoalBetter Starting PointPersistenceRisk
Short Wi-Fi testnmcli radio wifi offUntil Wi-Fi is turned back onLow for wired systems, disruptive on Wi-Fi-only systems
Prevent one profile from reconnectingnmcli connection modify "Name" connection.autoconnect noPersistent for that profileCan prevent reconnect after a link bounce or reboot if it is the active remote profile
Boot delay onlyDisable NetworkManager-wait-online.servicePersistentLow, because NetworkManager still manages connections
Stop NetworkManager after next rebootDisable NetworkManager.servicePersistent after rebootHigh unless another manager is configured
Stop NetworkManager nowStop NetworkManager.serviceRuntime only unless also disabledHigh, use a local console
Prevent automatic activationMask NetworkManager.servicePersistent until unmaskedHighest, 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.

Follow LinuxCapable

Want more LinuxCapable guides in Google?

Add LinuxCapable as a preferred source so Google can show more of our fresh Linux tutorials in Top Stories and From your sources when relevant.

Add LinuxCapable as a preferred source on Google
Search LinuxCapable

Need another guide?

Search LinuxCapable for package installs, commands, troubleshooting, and follow-up guides related to what you just read.

Found this guide useful?

Support LinuxCapable to keep tutorials free and up to date.

Buy me a coffeeBuy me a coffee
Before commenting, please review our Comments Policy.
Formatting tips for your comment

You can use basic HTML to format your comment. Useful tags currently allowed in published comments:

You type Result
<code>command</code> command
<strong>bold</strong> bold
<em>italic</em> italic
<blockquote>quote</blockquote> quote block

Got a Question or Feedback?

We read and reply to every comment - let us know how we can help or improve this guide.

Let us know you are human: