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.
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 disable NetworkManager.service
To disable Network Manager on Debian 7 or earlier:
$ sudo update-rc.d network-manager remove
To disable Network Manager on Ubuntu or Linux Mint:
$ 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 disable NetworkManager.service
To disable Network Manager on CentOS/RHEL 6 or earlier:
$ 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].
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.
# 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 220.127.116.11
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.
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:
On CentOS/RHEL 6 or earlier:
Upon rebooting, verify that Network Manager is successfully disabled for eth1 with nmcli command.
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.
Did you find this tutorial helpful? Then please be generous and support Xmodulo!