nmcli is a tool that allows NetworkManager management from command line.

NetworkManager status

Display overall status of NetworkManager

$ nmcli general status

Display active connections

$ nmcli connection show --active

Display all configured connections

$ nmcli connection show configured

Connect/disconnect to an already configured connection

Connect to a configured connection by name

$ nmcli connection up id connection name

Disconnection by name

$ nmcli connection down id connection name


Get Wifi status

$ nmcli radio wifi

Turn wifi on or off

$ nmcli radio wifi on|off

List available access points(AP) to connect to

$ nmcli device wifi list

Refresh previous list

$ nmcli device wifi rescan

Create a new connection to an open AP

$ nmcli device wifi connect SSID|BSSID

Create a new connection to a password protected AP

$ nmcli device wifi connect SSID|BSSID password password

Network interfaces

List available devices and their status

$ nmcli device status

Disconnect an interface

$ nmcli device disconnect iface interface

Create or modify a connection

To create a new connection using an interactive editor

$ nmcli connection edit con-name name of new connection

To edit an already existing connection using an interactive editor

$ nmcli connection edit connection name


Let’s create a new connection

$ nmcli connection edit con-name name of new connection

It will ask us to define a connection type

Valid connection types: 802-3-ethernet (ethernet), 802-11-wireless (wifi), wimax, gsm, cdma, infiniband, adsl, bluetooth, vpn, 802-11-olpc-mesh (olpc-mesh), vlan, bond, team, bridge, bond-slave, team-slave, bridge-slave
Enter connection type:

In this example we will use ethernet

Enter connection type: ethernet

Next this will appear, note that nmcli> is a prompt and that it lists the main settings available

===| nmcli interactive connection editor |===

Adding a new '802-3-ethernet' connection

Type 'help' or '?' for available commands.
Type 'describe [<setting>.<prop>]' for detailed property description.

You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, ipv4, ipv6

We will edit the setting ipv4

nmcli> goto ipv4

Note that after this our promt has changed to this to indicate that we are currently editing the "ipv4" setting

nmcli ipv4>

List available properties under the setting ipv4 and describe the property method

nmcli ipv4> describe

Available properties: method, dns, dns-search, addresses, routes, ignore-auto-routes, ignore-auto-dns, dhcp-client-id, dhcp-send-hostname, dhcp-hostname, never-default, may-fail
Property name?

Property name? method

Let’s set property method to auto

nmcli ipv4> set method auto

Now that we have finished editing the ipv4 setting let’s go back to the main level. Execute the following command until the prompt looks like this nmcli>

nmcli ipv4> back

If you need to list again the main settings use the goto command without any arguments. After that just press enter and ignore the error.

nmcli> goto

Available settings: connection, 802-3-ethernet (ethernet), 802-1x, ipv4, ipv6
Setting name?

It is possible to set a value for a property directly from the main level

nmcli> set __setting__.__property__ _value_

For example:

nmcli> set connection.autoconnect TRUE

nmcli> set connection.interface-name interface name this connection is bound to

nmcli> set ethernet.cloned-mac-address Spoofed MAC address

Finally check the connection details, save and exit

nmcli> print

nmcli> save

nmcli> quit

Manually editing

To manually edit a ifcfg connection configuration open or create with a text editor the configuration file of the connection located in /etc/sysconfig/network-scripts/ifcfg-

To modify a connection password open with a text editor and edit the file keys- located in /etc/sysconfig/network-scripts/. The password is stored in plain text. For example

$ cat /etc/sysconfig/network-scripts/keys-connection name

Or if using keyfile, simply edit the connection file located inside /etc/NetworkManager/system-connections/

Finally save the files and to apply changes to an already active connection execute

nmcli connection up id connection name

Delete a connection configuration

Delete the connection

nmcli connection delete id connection name

Please note this also deactivates the connection.

Documentation for NetworkManager Command Line Interface nmcli

The primary reference for nmcli are the manual pages nmcli and nmcli-examples. For a quick reference, the user can type nmcli help to print the supported options and commands. The help parameter can also be used to obtain a more detailed description for the individual commands. For example nmcli connection help and nmcli connection add help show a description for the possible connection operations and for how to add connections, respectively.

The newest version of the manual page can be found on nmcli and nmcli-examples.


nmcli maybe contain some bugs and lack some features graphical tools for NetworkManager have.

To see all available options for your version of nmcli

$ info nmcli

See a typo, something missing or out of date, or anything else which can be improved? Edit this document at