From Infogalactic: the planetary knowledge core
Jump to: navigation, search
NetworkManager is a system daemon, with various graphical front-ends are available
Original author(s) Red Hat
Initial release November 19, 2004; 12 years ago (2004-11-19)
Stable release 1.0.10 / December 23, 2015; 20 months ago (2015-12-23)[1]
Written in C with GObject
Operating system SUS/POSIX
Platform Unix-like
License GNU GPL

NetworkManager is a daemon that sits on top of libudev and other POSIX kernel interfaces (and a couple of other daemons) and provides a high-level interface to network interface configuration and setup and is accessible via dbus to apps.

How it works

NetworkManager is a software utility aims to simplify the use of computer networks on Linux-based and other Unix-like operating systems.

The device drivers for Network interface controller, Wireless network interface controller, etc. are part of the Linux kernel. Such hardware is presented to user space as a device file named e.g. eth0 located in the devfs-directory. Tools such as e.g. ifconfig or ip (in the iproute2-bundle) are there to configure the NIC/WNICs manually. These command-line programs can be called upon in shell scripts used by System V init or by systemd to configure them "automatically" at boot.

Also, there is the Dynamic Host Configuration Protocol. The command-line program dhclient eth0 can be called to retrieve the information for a correct and working configuration for the given interface from the DHCP-server in the network it is connected to.

As long as the configuration is static the solution works good enough and there is no need for the NetworkManager daemon! The NetworkManager daemon becomes particularly useful when some mobile computer roams between wireless networks.

Handle non-trivial topologies more easily.


Red Hat initiated a NetworkManager project in 2004 with the goal of enabling Linux users to deal more easily with modern networking needs, particularly wireless networking. NetworkManager takes an opportunistic approach to network selection, attempting to use the best available connection as outages occur, or as the user roams between wireless networks. It prefers Ethernet connections over “known” wireless networks, which are preferred over wireless networks with SSIDs to which the user has never connected. The user is prompted for WEP or WPA keys as needed.

The NetworkManager project was among the first major Linux desktop components to utilize D-Bus and HAL extensively. Since June 2009, however, NetworkManager no longer depends on HAL, and since 0.9.10 (ca. 2014), neither does it require the D-Bus daemon to be running for root operation.[2]

Software architecture

NetworkManager has two components:

  1. the NetworkManager daemon, the actual software which manages connections and reports network changes
  2. several graphical front-ends for diverse surfaces, such as GNOME Shell, GNOME Panel, KDE Plasma Workspaces, Cinnamon, etc.

Both components are intended by the developers to be reasonably portable, and the applet is available to desktop environments which implement the System Tray Protocol,[3] including GNOME, KDE Plasma Workspaces, Enlightenment (software) and Xfce. As the components communicate via D-Bus, applications can be written to be “link-aware”, or to replace the provided applet entirely. One example is KNetworkManager, a KDE frontend to NetworkManager developed by Novell for SUSE Linux.

Graphical front-ends and command line interfaces

  • cnetworkmanager
    command-line interface for NetworkManager.[5]

Mobile broadband configuration assistant

Antti Kaijanmäki announced the development of a mobile broadband configuration assistant for NetworkManager in April 2008;[6] it became available in NetworkManager version 0.7.0. Together with the package mobile-broadband-provider-info the connection is easily configured.

See also


  1. Rintel, Lubomir (2015-12-23). "ANN: NetworkManager 1.0.10 released". NetworkManager Discussions. The GNOME Project. Retrieved 2015-12-13. 
  2. "We’ll Build A Dream House Of Net". Retrieved 2015-05-28. 
  3. Havoc Pennington <>. "System Tray Protocol Specification". Retrieved 2012-02-04. 
  4. "Initial pieces of nmcli, gitweb". Retrieved 2015-05-28. 
  5. "cnetworkmanager - Command Line Interface for NetworkManager". Retrieved 2012-02-04. 
  6. "Announce on networkmanager-list". 2008-04-10. Retrieved 2012-02-04. 
  7. "UMTSmon". Retrieved 2012-02-04. 

External links