NetworkManager — GUI/TUI Network Management

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


tags:

NetworkManager provides graphical and text-based user interfaces for network configuration. It's the default on most desktop Linux distributions and offers excellent WiFi, VPN, and mobile broadband support.

Installation & Configuration

Install NetworkManager GUI Tools

# Debian / Ubuntu
sudo apt install -y network-manager network-manager-gnome  # Install NM + applet / Установить NM + апплет
sudo apt install -y network-manager-openvpn-gnome  # OpenVPN plugin / Плагин OpenVPN

# RHEL / Fedora
sudo dnf install -y NetworkManager NetworkManager-wifi NetworkManager-tui  # Install NM / Установить NM
sudo dnf install -y network-manager-applet  # GNOME applet / GNOME апплет

Enable NetworkManager

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

Configuration Paths


GUI Tools

nm-connection-editor

nm-connection-editor  # Launch connection editor / Запустить редактор соединений

Use Cases:

GNOME Network Settings

gnome-control-center network  # Launch GNOME network settings / Запустить настройки сети

Network Manager Applet

nm-applet  # Start system tray applet / Запустить апплет в трее

Features:


Text UI (nmtui)

Launch nmtui

nmtui  # Launch text UI / Запустить текстовый интерфейс

Menu Options:

  1. Edit a connection — Create/modify connections
  2. Activate a connection — Connect/disconnect
  3. Set system hostname — Change hostname

Common Workflows

Create Ethernet Connection (nmtui)

  1. Select "Edit a connection"
  2. Choose "Add"
  3. Select "Ethernet"
  4. Configure IP (DHCP or Manual)
  5. Select "OK" then "Back"
  6. Select "Activate a connection" to connect

Create WiFi Connection (nmtui)

  1. Select "Edit a connection"
  2. Choose "Add"
  3. Select "Wi-Fi"
  4. Enter SSID and password
  5. Select "OK" then "Back"
  6. Select "Activate a connection" to connect

Dispatcher Scripts

Create Dispatcher Script

/etc/NetworkManager/dispatcher.d/99-custom-script

#!/bin/bash
# Dispatcher script example

INTERFACE=$1  # Interface name / Имя интерфейса
ACTION=$2     # Action (up, down, vpn-up, vpn-down) / Действие

case "$ACTION" in
  up)
    echo "Interface $INTERFACE is up" >> /var/log/nm-dispatcher.log
    # Run commands when interface comes up / Команды при поднятии интерфейса
    ;;
  down)
    echo "Interface $INTERFACE is down" >> /var/log/nm-dispatcher.log
    # Run commands when interface goes down / Команды при опускании интерфейса
    ;;
  vpn-up)
    echo "VPN connection established" >> /var/log/nm-dispatcher.log
    # Run commands when VPN connects / Команды при подключении VPN
    ;;
esac
sudo chmod +x /etc/NetworkManager/dispatcher.d/99-custom-script  # Make executable / Сделать исполняемым

[!NOTE] Dispatcher scripts run as root and receive the interface name and action as arguments.

Common Dispatcher Use Cases


Connection Management

NetworkManager Configuration File

/etc/NetworkManager/NetworkManager.conf

[main]
plugins=keyfile  # Connection storage format / Формат хранения соединений
dns=systemd-resolved  # DNS backend / Бэкенд DNS

[logging]
level=INFO  # Log level / Уровень логирования

[connection]
wifi.powersave=2  # WiFi powersave (2=enabled) / Энергосбережение WiFi
sudo systemctl restart NetworkManager  # Apply config / Применить конфигурацию

Connection File Example

/etc/NetworkManager/system-connections/office-wifi.nmconnection

[connection]
id=office-wifi
uuid=<UUID>
type=wifi
autoconnect=true

[wifi]
ssid=Office_Network
mode=infrastructure

[wifi-security]
key-mgmt=wpa-psk
psk=<PASSWORD>

[ipv4]
method=auto

[ipv6]
method=auto

[!CAUTION] Connection files contain passwords in plain text. Ensure permissions are 600 (read/write for root only).

sudo chmod 600 /etc/NetworkManager/system-connections/*  # Secure permissions / Безопасные права

Troubleshooting & Tools

Common Issues

# WiFi not working / WiFi
sudo systemctl restart NetworkManager  # Restart NetworkManager / Перезапустить NM
sudo rfkill unblock wifi                # Unblock WiFi / Разблокировать WiFi

# Connection managed by other service
sudo nmcli device set <DEVICE> managed yes  # Force NM management / Принудительное управление

# No network icon in tray
nm-applet &  # Start applet / Запустить апплет

Debug Logging

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

View Connection Secrets

nmcli -s connection show <CONN>  # Show with secrets / Показать с секретами (требует sudo)

Comparison Tables

NetworkManager Tools Comparison

Tool Interface Best For WiFi Support
nmcli CLI Scripts, automation / Скрипты, автоматизация Full / Полная
nmtui Text UI SSH sessions, minimal env / SSH сессии, минимальная среда Full / Полная
nm-connection-editor GUI Desktop configuration / Настройка десктопа Full / Полная
nm-applet System tray Quick connect/disconnect / Быстрое подключение Full / Полная

On this page

linux NetworkManager — GUI &amp; TUI Network Management Installation &amp; Configuration Install NetworkManager GUI Tools Enable NetworkManager Configuration Paths GUI Tools nm-connection-editor GNOME Network Settings Network Manager Applet Text UI (nmtui) Launch nmtui Common Workflows Create Ethernet Connection (nmtui) Create WiFi Connection (nmtui) Dispatcher Scripts Create Dispatcher Script Common Dispatcher Use Cases Connection Management NetworkManager Configuration File Connection File Example Troubleshooting &amp; Tools Common Issues Debug Logging View Connection Secrets Comparison Tables NetworkManager Tools Comparison 📚 Documentation Links