How to disable Network Manager on Linux

Network Manager is a feature-rich network configuration service which is used by default in most Linux desktop environments nowadays. It provides automatic configuration of (wired/wireless) network interfaces, as well as VPN, mobile broadband and even Bluetooth connections. Network Manager is smart enough to automatically switch to the best (or the most recent) connection network, and can inform other applications of up-to-date network events via D-Bus API.

While Network Manager comes with various sophisticated features, you might just prefer the old plain network service. There could be several reasons to do so. For one, you may wish to have more control over network management, instead of relying on purely automatic configuration and switch-over, which may or may not suit your needs. Besides, Network Manager is not suitable for advanced networking setup, such as multi-homing to more than one wired connections, forwarding network traffic, configuring Linux bridge or aliases, etc.

In general, Network Manager is designed to keep a typical end-user Linux box connected at all times with the best possible connection with minimum intervention by users. If such automation is not needed in your Linux environment, you can turn off Network Manager.

This tutorial describes how to disable Network Manager in various Linux desktop environments. Be careful if you are trying to disable Network Manager on a remote host, as you will lose connectivity if you fail to set up its networking correctly in some other means.

Check Which Network Interfaces are Managed by Network Manager

To check if Network Manager is managing any network interface, you can use nmcli, which is a command line utility that comes with Network Manager.

$ nmcli dev status
DEVICE     TYPE              STATE
eth1      802-3-ethernet   connected
eth0      802-3-ethernet   connected

The above command will list all existing network interfaces along with their STATE. If STATE is shown as "unmanaged", this means Network Manager is NOT controlling a corresponding interface. If STATE displays any other values (e.g., "connected"), it implies that a given interface is managed by Network Manager.

Disable Network Manager Completely

Here is how to disable Network Manager completely, so that Network Manager stops running on your Linux system.

To disable Network Manager on Debian 8 or later:

$ sudo systemctl stop NetworkManager.service
$ sudo systemctl disable NetworkManager.service

To disable Network Manager on Debian 7 or earlier:

$ sudo /etc/init.d/network-manager stop
$ sudo update-rc.d network-manager remove

To disable Network Manager on Ubuntu or Linux Mint:

$ sudo stop network-manager
$ echo "manual" | sudo tee /etc/init/network-manager.override

After disabling Network Manager on Debian or Ubuntu, use /etc/network/interfaces to configure network interfaces.

To disable Network Manager on Fedora or CentOS/RHEL 7 or later:

$ sudo systemctl stop NetworkManager.service
$ sudo systemctl disable NetworkManager.service

To disable Network Manager on CentOS/RHEL 6 or earlier:

$ sudo service NetworkManager stop
$ sudo chkconfig NetworkManager off

After disabling Network Manager on Fedora or CentOS, use /etc/sysconfig/network-scripts/ifcfg-ethX files to configure network interfaces.

Disable Network Manager for a Particular Network Interface on Debian, Ubuntu or Linux Mint

To disable Network Manager only for eth1 on Debian, Ubuntu or Linux Mint, you can do the following.

First, open the Network Manager configuration file in /etc/NetworkManager with a text editor, and set "managed=false", typically shown under [ifupdown].

$ sudo vi /etc/NetworkManager/NetworkManager.conf
[ifupdown]
managed=false

Then in /etc/network/interfaces, add information about the interface you want to disable Network Manager for. In this example, the interface is eth1, and we are using static IP configuration.

$ sudo vi /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback

# network interface not managed by Network Manager
allow-hotplug eth1
iface eth1 inet static
address 10.0.0.10
netmask 255.255.255.0
gateway 10.0.0.1
dns-nameservers 8.8.8.8

Then Network Manager automatically ignore any interfaces specified in /etc/network/interfaces, and stop managing them.

After rebooting, verify that Network Manager is successfully disabled for eth1.

$ nmcli dev status

Disable Network Manager for a Particular Network Interface on Fedora or CentOS/RHEL

The following steps will disable Network Manager for eth1 on Fedora, CentOS or RHEL.

Create an interface configuration file for eth1 (if not exist), and add "NM_CONTROLLED=no".

TYPE="Ethernet"
NAME="eth1"
BOOTPROTO="static"
IPADDR=10.0.0.10
NETMASK=255.255.255.0
GATEWAY=10.0.0.1
HWADDR="00:90:29:95:EA:57"
ONBOOT="yes"
DEFROUTE="yes"
NM_CONTROLLED=no

Now enable network service so that eth1 is activated by network service automatically upon boot.

On Fedora or CentOS/RHEL 7 or later:

$ sudo systemctl enable network.service

On CentOS/RHEL 6 or earlier:

$ sudo chkconfig network on

Upon rebooting, verify that Network Manager is successfully disabled for eth1 with nmcli command.

$ nmcli dev status

Subscribe to Xmodulo

Do you want to receive Linux FAQs, detailed tutorials and tips published at Xmodulo? Enter your email address below, and we will deliver our Linux posts straight to your email box, for free. Delivery powered by Google Feedburner.


Support Xmodulo

Did you find this tutorial helpful? Then please be generous and support Xmodulo!

The following two tabs change content below.
Dan Nanni is the founder and also a regular contributor of Xmodulo.com. He is a Linux/FOSS enthusiast who loves to get his hands dirty with his Linux box. He likes to procrastinate when he is supposed to be busy and productive. When he is otherwise free, he likes to watch movies and shop for the coolest gadgets.

16 thoughts on “How to disable Network Manager on Linux

  1. So let me ask the n00b question... if Network Manager is so "feature-rich" and so popular, why are we disabling it? What scenarios or issues would call for this action?
    I ask because I recently ran into a spat of network issues on my laptop which eventually led to doing a wipe and load of Ubuntu (it wasn't a production machine so wipe and load wasn't a big issue).

    • It might be a personal choice. e.g., I want to control my network interfaces my way, not have NM do it for me. Besides, when you need more advanced networking set up (e.g., multi-homing, forwarding, linux bridge setup), you cannot rely on Network Manager. See the updated post.

    • You absolutely do _not_ want NetworkManager running on a multiuser server else you will get inexplicable network drops, routing surprises, and general network-related strangeness. Server networking is usually hand-crafted with specific goals in mind such as traffic isolation, quality-of-service, redundancy and specific fault-tolerance behavior.

      NetworkManager breaks all that, even on networks it has been told not to manage.

      Network manager does make good sense on a laptop where you can roam multiple networks seamlessly, automatically switch between wireless and wired networks, and if you just don't want to be bothered by all that network jive.

      I don't like/use NetworkManager but it gets harder to ignore NetworkManager each new release because it is supposed to manager more and more stuff via the D-bus channels; stuff that becomes confused if communication over the D-bus is not present.

      • I can see what you're saying, Tommy. Coming from my Windows background I can see the need to nail down a static IP on all servers. So, yes, I agree that in the case of servers you don't want software managing the network connections, while a roaming laptop can benefit from letting NM do the heavy lifting.
        Thanks for clearing that up.

    • Good question! I always disable it, for it cannot handle even simplest tasks out of the box. It cannot manage my permanent wired (DHCP) interface. Nothing special about it, JUST good old plain DHCP! Yet every time I log in, run YUM -- now it has network, now it hasn't. And it's always, ALWAYS been the same thing, ever since NM became part of GNOME 3, in all subsequent Fedora releases.
      My conclusion: NM is too much packed with unpredictable things. In my last Fedora installation (stopped using it 2 years ago) I even forcibly deleted NM -- the binaries and systemd scripts. Yes, removed it all manually.
      Just somehow the GNOME 3 team feels it's a necessary part of their product, while I feel otherwise.

  2. if Network manager believes you're offline (since it doesn't manage interfaes..) you will get all sorts of weird side effects. try adding a new imap account in evolution...

  3. I much prefer WICD behavior over NetworkManager, so I've removed NetworkManager as a matter of course.

    The only reason NetworkManager lives on one of my present laptops is because of IPv6. When WICD with IPv6 becomes available, I will erase NetworkManager one last time.

  4. Hi, nice post!, I use Slackware, here disable NM is very easy, just execute the following sentences:

    # /etc/rc.d/rc.networkmanager stop
    # chmod a+x /etc/rc.d/rc.networkmanager

  5. NetworkManager is fine for a typical end-user workstation. Matter of fact, it's a great idea. This is true for either laptop or mid-tower desktop, and it makes wireless connectivity actually useable by a typical end-user. It's also good for thin clients under certain circumstances.

    For servers, though, I always turn it off. There are certain times I need to use non-default settings that NetworkManager seems to like overwriting. Since I tend to do things "the UNIX way", i. e. not a distro-specific way, this goes more in line with my style of system administration.

    So, I'm glad it's there as an option. Emphasis on the word, "option".

    --SYG

  6. Doesnt network manager automatically stop managing interfaces defined in the /etc/network/interface file ? So are the changes you suggest even necessary ? Thanks

    • Yes, you don't need to do anything in Debian distributions if you just add the device in /etc/network/interfaces.
      I would even suggest that the editing is bad, as it will interfere with package updating.

  7. I stopped and disabled network-manager (Debian 8.2):
    # /etc/init.d/network-manager stop
    # update-rc.d network-manager remove

    but after the restart it still starts!

    gbajson@misio:~$ ps -ef | grep -i netwo
    root 2692 1 0 09:52 ? 00:00:00 /usr/sbin/NetworkManager --no-daemon

    root@misio:~# chkconfig | grep network-manager
    network-manager off

Leave a comment

Your email address will not be published. Required fields are marked *