What is the difference between Network Manager and 'ifconfig' 'ifup', etc?
NetworkManager
and ifconfig
are not (by default) compatible (NetworkManager
won't configure interfaces listed in /etc/network/interfaces
). NetworkManager
is a sort of settings daemon that makes sure that multiple users can edit network connections, this is very smart in a desktop environment (especially on laptops that might move around between different wireless networks). Basically NetworkManager
is a frontend to iproute
, dhclient
, wpa_supplicant
and ppp
.
ifconfig
is a general tool for configuring network interfaces, you can for example do like this:
ifconfig eth1 10.0.0.1 netmask 255.0.0.0 hw ether 10:10:10:10:10:10
ifconfig eth1 down
to set your IP, netmask and MAC address of eth1
, and then down (disable/turn off) your interface. ifconfig
doesn't read any config files and does only exactly what it is told.
ifup
and ifdown
are helper programs that use ifconfig
to configure a network interface in accordance to /etc/network/interfaces
this will make sure that if there are any up, down, pre-up, pre-down, post-up, post-down scripts that need to be run they will be.
Ok, then there is wpa_supplicant
and dhclient
. dhclient
is a DHCP client - ifup
will use this if a network interface is configured for DHCP, as will NetworkManager
. wpa_supplicant
is a tool for configuring encryption on wireless networks.
Most of these tools have man pages, for instance the interfaces-file have it's own manpage that describe the format of that config file.
man interfaces
man ifconfig
man ifup
So that being said i would recommend that you remove (or disable) NetworkManager
, I don't think that any thing will break from removing NetworkManager
except the gui tools for setting up network. If you want to configure wireless without NetworkManager
you might want to look at this.
These toolsets are complementary, not mutually exclussive.
FWIW, ifconfig
is just a tool among other *config
tools which are used to configure network interfaces.
The ifup(8)
and ifdown(8)
tools are one layer above the *config
tools. You can think of them as helper tools.
Likewise, NetworkManager is a level above the ifup(8)
and ifdown(8)
tools. For lack of a better term, NetworkManager is able to orchestrate the tools(ets) from the levels below in order to acomplish higher level tasks like Internet Connection Sharing with additional ease compared to just using the tools from the levels below.