{"id":10633,"date":"2021-10-09T16:45:33","date_gmt":"2021-10-09T13:45:33","guid":{"rendered":"https:\/\/kifarunix.com\/?p=10633"},"modified":"2024-03-18T13:45:33","modified_gmt":"2024-03-18T10:45:33","slug":"install-and-use-nmcli-tool-on-debian-linux","status":"publish","type":"post","link":"https:\/\/kifarunix.com\/install-and-use-nmcli-tool-on-debian-linux\/","title":{"rendered":"Install and use NMCLI tool on Debian Linux"},"content":{"rendered":"\n<p>In this tutorial, we provide a step by step guide on how to install and use NMCLI tool on Debian Linux.<\/p>\n\n\n\n<p>According to man pages:<\/p>\n\n\n\n<p><em><a href=\"https:\/\/linux.die.net\/man\/1\/nmcli\" target=\"_blank\" rel=\"noreferrer noopener\">NMCLI<\/a> is a command-line tool for controlling NetworkManager and reporting network status. It can be utilized as a replacement for <strong>nm-applet<\/strong> or other graphical clients. <strong>nmcli<\/strong> is used to create, display, edit, delete, activate, and deactivate network connections, as well as control and display network device status<\/em>.<\/p>\n\n\n\n<p>Typical uses include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>Scripts: Utilize NetworkManager via nmcli instead of managing network connections manually. nmcli supports a terse output format which is better suited for script processing. Note that NetworkManager can also execute scripts, called &#8220;dispatcher scripts&#8221;, in response to network events. See NetworkManager(8) for details about these dispatcher scripts.<\/em><\/li>\n\n\n\n<li><em>Servers, headless machines, and terminals: nmcli can be used to control NetworkManager without a GUI, including creating, editing, starting and stopping network connection and viewing network status.<\/em><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Using NMCLI tool on Debian Linux<\/h2>\n\n\n\n<p>On on headless Debian systems, nmcli tool may not be installed by default.<\/p>\n\n\n\n<p>If not installed, then you can run the command below to install it;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install network-manager<\/code><\/pre>\n\n\n\n<p>The command installs a command line tool, nmcli and nmtui, a text User Interface for controlling NetworkManager.<\/p>\n\n\n\n<p>You can then use nmcli command to <em>create, display, edit, delete, activate, and deactivate network connections, as well as control and display network device status<\/em>.<\/p>\n\n\n\n<p>The command line syntax for <strong><code>nmcli<\/code><\/strong> command;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmcli &#91;OPTIONS...] {help | general | networking | radio | connection | device | agent | monitor} &#91;COMMAND] &#91;ARGUMENTS...]<\/code><\/pre>\n\n\n\n<p>When run with no arguments;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmcli<\/code><\/pre>\n\n\n\n<p>This is the sample output;<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>\nenp0s8: connected to Wired connection 1\n        \"Intel 82540EM\"\n        ethernet (e1000), 08:00:27:56:8E:61, hw, mtu 1500\n        inet4 192.168.58.26\/24\n        route4 192.168.58.0\/24\n        inet6 fe80::a00:27ff:fe56:8e61\/64\n        route6 fe80::\/64\n\nenp0s3: unmanaged\n        \"Intel 82540EM\"\n        ethernet (e1000), 08:00:27:88:1B:AE, hw, mtu 1500\n\nlo: unmanaged\n        \"lo\"\n        loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536\n\nUse \"nmcli device show\" to get complete information about known devices and\n\"nmcli connection show\" to get an overview on active connection profiles.\n\nConsult nmcli(1) and nmcli-examples(7) manual pages for complete usage details.\n<\/code><\/pre>\n\n\n\n<p>To show overall status of NetworkManager;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmcli general<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN    \nconnected  limited       enabled  enabled  enabled  enabled<\/code><\/pre>\n\n\n\n<p>To show complete information about known devices;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmcli device show<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>\nGENERAL.DEVICE:                         enp0s8\nGENERAL.TYPE:                           ethernet\nGENERAL.HWADDR:                         08:00:27:56:8E:61\nGENERAL.MTU:                            1500\nGENERAL.STATE:                          100 (connected)\nGENERAL.CONNECTION:                     Wired connection 1\nGENERAL.CON-PATH:                       \/org\/freedesktop\/NetworkManager\/ActiveConnection\/2\nWIRED-PROPERTIES.CARRIER:               on\nIP4.ADDRESS[1]:                         192.168.58.31\/24\nIP4.ADDRESS[2]:                         192.168.58.26\/24\nIP4.GATEWAY:                            --\nIP4.ROUTE[1]:                           dst = 192.168.58.0\/24, nh = 0.0.0.0, mt = 100\nIP4.ROUTE[2]:                           dst = 169.254.0.0\/16, nh = 0.0.0.0, mt = 1000\nIP6.ADDRESS[1]:                         fe80::f3aa:9e8c:be4b:daf9\/64\nIP6.GATEWAY:                            --\nIP6.ROUTE[1]:                           dst = fe80::\/64, nh = ::, mt = 100\nIP6.ROUTE[2]:                           dst = ff00::\/8, nh = ::, mt = 256, table=255\n...\n<\/code><\/pre>\n\n\n\n<p>To show information about specific device;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmcli dev sh enp0s8<\/code><\/pre>\n\n\n\n<p>To show an overview on active connection profiles;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmcli connection show<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>NAME                UUID                                  TYPE      DEVICE \nWired connection 1  049a12b7-79f5-3236-bc50-e69be0d2b618  ethernet  enp0s8<\/code><\/pre>\n\n\n\n<p>Show system hostname using nmcli;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmcli general hostname<\/code><\/pre>\n\n\n\n<p>you can even use abbreviations;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmcli g h<\/code><\/pre>\n\n\n\n<p>To see more example usage of nmcli command, run;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>man nmcli-examples<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">More nmcli command usage examples;<\/h3>\n\n\n\n<p>Listing available Wi-Fi APs<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmcli device wifi list<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>IN-USE  BSSID              SSID       MODE   CHAN  RATE        SIGNAL  BARS  SECURITY \n*       E0:CC:7A:3F:78:64  SUDO       Infra  5     130 Mbit\/s  43      \u2582\u2584__  WPA2     \n        E0:CC:7A:3E:40:6C  CMT_M-A4   Infra  3     130 Mbit\/s  19      \u2582___  WPA2<\/code><\/pre>\n\n\n\n<p>Connect to a password-protected wifi network;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmcli device wifi connect \"$SSID\" password \"$PASSWORD\"<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>nmcli --ask device wifi connect \"$SSID\"<\/code><\/pre>\n\n\n\n<p>Showing general information and properties for a Wi-Fi interface;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmcli -p -f general,wifi-properties device show <\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>\n===============================================================================\n                          Device details (wlp0s20f3)\n===============================================================================\nGENERAL.DEVICE:                         wlp0s20f3\nGENERAL.TYPE:                           wifi\nGENERAL.NM-TYPE:                        NMDeviceWifi\nGENERAL.DBUS-PATH:                      \/org\/freedesktop\/NetworkManager\/Devices\/13\nGENERAL.VENDOR:                         Intel Corporation\nGENERAL.PRODUCT:                        Wireless-AC 9462\nGENERAL.DRIVER:                         iwlwifi\nGENERAL.DRIVER-VERSION:                 5.4.0-48-generic\nGENERAL.FIRMWARE-VERSION:               48.4fa0041f.0\nGENERAL.HWADDR:                         5C:80:B6:86:61:0E\nGENERAL.MTU:                            1500\nGENERAL.STATE:                          100 (connected)\nGENERAL.REASON:                         0 (No reason given)\nGENERAL.IP4-CONNECTIVITY:               4 (full)\nGENERAL.IP6-CONNECTIVITY:               3 (limited)\nGENERAL.UDI:                            \/sys\/devices\/pci0000:00\/0000:00:14.3\/net\/wlp0s20f3\nGENERAL.IP-IFACE:                       wlp0s20f3\nGENERAL.IS-SOFTWARE:                    no\nGENERAL.NM-MANAGED:                     yes\nGENERAL.AUTOCONNECT:                    yes\nGENERAL.FIRMWARE-MISSING:               no\nGENERAL.NM-PLUGIN-MISSING:              no\nGENERAL.PHYS-PORT-ID:                   --\nGENERAL.CONNECTION:                     SUDO\nGENERAL.CON-UUID:                       2f048f49-9ffd-45f4-91e1-0dab7a88a12b\nGENERAL.CON-PATH:                       \/org\/freedesktop\/NetworkManager\/ActiveConnection\/7\nGENERAL.METERED:                        no (guessed)\n-------------------------------------------------------------------------------\nWIFI-PROPERTIES.WEP:                    yes\nWIFI-PROPERTIES.WPA:                    yes\nWIFI-PROPERTIES.WPA2:                   yes\nWIFI-PROPERTIES.TKIP:                   yes\nWIFI-PROPERTIES.CCMP:                   yes\nWIFI-PROPERTIES.AP:                     yes\nWIFI-PROPERTIES.ADHOC:                  yes\nWIFI-PROPERTIES.2GHZ:                   yes\nWIFI-PROPERTIES.5GHZ:                   yes\n<\/code><\/pre>\n\n\n\n<p>Go through more examples on man nmcli-exmaples.<\/p>\n\n\n\n<p>You can also check our example in the links below;<\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/connect-to-wifi-in-linux-using-nmcli-command\/\">Connect to WiFi in Linux Using NMCLI command<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/create-virtual-secondary-ip-addresses-on-an-interface-in-linux\/\" target=\"_blank\" rel=\"noreferrer noopener\">Create Virtual\/Secondary IP addresses on an Interface in Linux<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this tutorial, we provide a step by step guide on how to install and use NMCLI tool on Debian Linux. According to man pages:<\/p>\n","protected":false},"author":1,"featured_media":10635,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_lock_modified_date":false,"footnotes":""},"categories":[63,121],"tags":[4163,4160,4164,4162,1430,673,4161,4155],"class_list":["post-10633","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-networking","category-howtos","tag-install-nmcli","tag-install-nmcli-debian","tag-linux-network-manager","tag-network-manager","tag-networking","tag-nmcli","tag-nmcli-command","tag-nmtui","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-50","resize-featured-image"],"_links":{"self":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/10633"}],"collection":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/comments?post=10633"}],"version-history":[{"count":2,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/10633\/revisions"}],"predecessor-version":[{"id":21646,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/10633\/revisions\/21646"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media\/10635"}],"wp:attachment":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media?parent=10633"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/categories?post=10633"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/tags?post=10633"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}