nmcli — NetworkManager CLI

If you like this project, consider supporting me on Buy Me a Coffee ☕️


tags:

nmcli is the command-line interface for NetworkManager, the default network management tool for RHEL, Fedora, Ubuntu, and many other distributions. It provides full control over network connections without requiring a GUI.

Installation & Configuration

Install NetworkManager

Debian / Ubuntu

sudo apt update && sudo apt install -y network-manager  # Install NetworkManager / Установить NetworkManager

RHEL / CentOS / AlmaLinux

sudo dnf install -y NetworkManager  # Install NetworkManager / Установить NetworkManager

Enable NetworkManager Service

sudo systemctl enable --now NetworkManager  # Enable and start / Включить и запустить
sudo systemctl status NetworkManager          # Check status / Проверить статус

Configuration Paths

Log Locations


Core Management

General Status

nmcli general status                  # Overall NM status / Общий статус NetworkManager
nmcli general hostname                # Show hostname / Показать имя хоста
sudo nmcli general hostname <HOST>    # Set hostname / Установить имя хоста

Sample Output:

STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN
connected  full          enabled  enabled  enabled  enabled

Device Management

nmcli device status                   # List all devices / Список устройств
nmcli device show <DEVICE>            # Show device details / Детали устройства
nmcli device connect <DEVICE>         # Connect device / Подключить устройство
nmcli device disconnect <DEVICE>      # Disconnect device / Отключить устройство
nmcli device wifi list                # List WiFi networks / Список WiFi сетей

Connection Management

nmcli connection show                 # List all connections / Список соединений
nmcli connection show <CONN>          # Show connection details / Детали соединения
nmcli connection up <CONN>            # Activate connection / Активировать соединение
nmcli connection down <CONN>          # Deactivate connection / Деактивировать соединение
nmcli connection reload               # Reload all configs / Перезагрузить конфигурации
nmcli connection delete <CONN>        # Delete connection / Удалить соединение

[!TIP] Connection names with spaces must be quoted: nmcli connection up "My WiFi"


Connection Types

Ethernet Static IP

nmcli connection add \
  type ethernet \
  con-name <CONN_NAME> \
  ifname <INTERFACE> \
  ip4 <IP>/24 \
  gw4 <GATEWAY> \
  ipv4.dns "<DNS1> <DNS2>"
# Create static Ethernet connection

Example:

nmcli connection add \
  type ethernet \
  con-name office-eth \
  ifname enp0s3 \
  ip4 192.168.1.100/24 \
  gw4 192.168.1.1 \
  ipv4.dns "8.8.8.8 8.8.4.4"

Ethernet DHCP / DHCP

nmcli connection add \
  type ethernet \
  con-name <CONN_NAME> \
  ifname <INTERFACE>
# Create DHCP Ethernet connection

Modify Existing Connection

nmcli connection modify <CONN> ipv4.addresses <IP>/24  # Change IP / Изменить IP
nmcli connection modify <CONN> ipv4.gateway <GATEWAY>  # Change gateway / Изменить шлюз
nmcli connection modify <CONN> ipv4.dns "<DNS1> <DNS2>"  # Change DNS / Изменить DNS
nmcli connection modify <CONN> ipv4.method manual      # Set to static / Переключить на статику
nmcli connection modify <CONN> ipv4.method auto        # Set to DHCP / Переключить на DHCP
nmcli connection up <CONN>                              # Apply changes / Применить изменения

[!WARNING] Always run nmcli connection up <CONN> after modifying to apply changes. Without this, the configuration is saved but not active.


WiFi Management

List Available Networks

nmcli device wifi list                # Show all WiFi networks / Показать WiFi сети
nmcli device wifi rescan              # Rescan for networks / Повторить сканирование

Connect to WiFi

nmcli device wifi connect "<SSID>" password "<PASSWORD>"  # Connect to WiFi / Подключиться к WiFi

Create WiFi Connection

nmcli connection add \
  type wifi \
  con-name <CONN_NAME> \
  ifname <INTERFACE> \
  ssid "<SSID>" \
  wifi-sec.key-mgmt wpa-psk \
  wifi-sec.psk "<PASSWORD>"
# Create WiFi connection

WiFi Hotspot / WiFi

nmcli device wifi hotspot \
  ifname <INTERFACE> \
  ssid "<HOTSPOT_NAME>" \
  password "<PASSWORD>"
# Create WiFi hotspot

VPN Connections

OpenVPN Connection / OpenVPN

nmcli connection import type openvpn file <CONFIG>.ovpn  # Import OpenVPN config / Импортировать OpenVPN
nmcli connection up <VPN_NAME>                            # Connect to VPN / Подключиться к VPN

Manual VPN Setup

nmcli connection add \
  type vpn \
  vpn-type openvpn \
  con-name <VPN_NAME> \
  vpn.data "remote=<VPN_SERVER>, connection-type=password"
# Create VPN connection

Advanced Networking

Bridge Creation

nmcli connection add type bridge con-name <BRIDGE_NAME> ifname <BRIDGE_IF>  # Create bridge / Создать мост
nmcli connection add type ethernet slave-type bridge con-name <SLAVE_NAME> ifname <INTERFACE> master <BRIDGE_IF>  # Add slave / Добавить slave
nmcli connection up <BRIDGE_NAME>  # Activate bridge / Активировать мост
nmcli connection add type bond con-name <BOND_NAME> ifname <BOND_IF> mode active-backup  # Create bond / Создать bond
nmcli connection add type ethernet slave-type bond con-name <SLAVE1> ifname <IF1> master <BOND_IF>  # Add first slave / Первый интерфейс
nmcli connection add type ethernet slave-type bond con-name <SLAVE2> ifname <IF2> master <BOND_IF>  # Add second slave / Второй интерфейс
nmcli connection up <BOND_NAME>  # Activate bond / Активировать bond

VLAN Configuration

nmcli connection add type vlan con-name <VLAN_NAME> dev <PARENT_IF> id <VLAN_ID>  # Create VLAN / Создать VLAN
nmcli connection modify <VLAN_NAME> ipv4.addresses <IP>/24  # Set IP / Установить IP
nmcli connection up <VLAN_NAME>  # Activate VLAN / Активировать VLAN

Troubleshooting & Tools

Common Issues

# Connection won't activate
nmcli connection delete <CONN> && nmcli connection reload  # Delete and reload / Удалить и перезагрузить

# DNS not resolving / DNS
nmcli connection modify <CONN> ipv4.ignore-auto-dns yes  # Ignore auto DNS / Игнорировать авто DNS
nmcli connection modify <CONN> ipv4.dns "8.8.8.8 8.8.4.4"  # Set manual DNS / Установить DNS вручную
nmcli connection up <CONN>  # Apply / Применить

# NetworkManager not managing interface / NetworkManager
sudo nmcli device set <DEVICE> managed yes  # Enable management / Включить управление

Debug Logging

sudo nmcli general logging level DEBUG  # Enable debug logging / Включить отладку
journalctl -u NetworkManager -f          # Watch logs / Смотреть логи
sudo nmcli general logging level INFO    # Restore normal logging / Восстановить обычное логирование

Export/Import Connections

nmcli connection show <CONN> > <CONN>.txt  # Export connection details / Экспортировать детали
sudo cp /etc/NetworkManager/system-connections/<CONN> /backup/  # Backup connection file / Бэкап файла

Comparison Tables

Bond Modes Comparison

Mode Description (EN / RU) Use Case
balance-rr (0) Round-robin load balancing / Циклическая балансировка Maximum throughput, requires switch support
active-backup (1) Active/standby failover / Активный/резервный Simple failover, no switch config needed
balance-xor (2) XOR hash-based load balance / Балансировка по хэшу Load balancing without LACP
802.3ad (4) LACP (Link Aggregation) / LACP агрегация Enterprise, requires LACP support on switch

Connection Types Comparison

Type Typical Use Configuration Complexity
Ethernet Wired LAN / Проводная сеть Simple / Простая
WiFi Wireless LAN / Беспроводная сеть Medium / Средняя
Bridge VM networking, containers / ВМ, контейнеры Medium / Средняя
Bond High availability / Высокая доступность Complex / Сложная
VLAN Network segmentation / Сегментация сети Medium / Средняя
VPN Remote access / Удалённый доступ Complex / Сложная

On this page

linux nmcli — NetworkManager Command Line Interface Installation &amp; Configuration Install NetworkManager Debian / Ubuntu RHEL / CentOS / AlmaLinux Enable NetworkManager Service Configuration Paths Log Locations Core Management General Status Device Management Connection Management Connection Types Ethernet Static IP Ethernet DHCP / DHCP Modify Existing Connection WiFi Management List Available Networks Connect to WiFi Create WiFi Connection WiFi Hotspot / WiFi VPN Connections OpenVPN Connection / OpenVPN Manual VPN Setup Advanced Networking Bridge Creation Bond (Link Aggregation) VLAN Configuration Troubleshooting &amp; Tools Common Issues Debug Logging Export/Import Connections Comparison Tables Bond Modes Comparison Connection Types Comparison 📚 Documentation Links