Title: πŸ–§ NetworkManager β€” GUI/TUI Network Management Group: Network Icon: πŸ–§ Order: 23 # NetworkManager β€” GUI & TUI Network Management 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. ## Table of Contents - [Installation & Configuration](#installation--configuration) - [GUI Tools](#gui-tools) - [Text UI (nmtui)](#text-ui-nmtui) - [Dispatcher Scripts](#dispatcher-scripts) - [Connection Management](#connection-management) - [Troubleshooting & Tools](#troubleshooting--tools) --- ## Installation & Configuration ### Install NetworkManager GUI Tools / Установка GUI инструмСнтов ```bash # 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 / Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ NetworkManager ```bash sudo systemctl enable --now NetworkManager # Enable and start / Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ sudo systemctl status NetworkManager # Check status / ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ статус ``` ### Configuration Paths / ΠŸΡƒΡ‚ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ - **Main config:** `/etc/NetworkManager/NetworkManager.conf` - **Connection files:** `/etc/NetworkManager/system-connections/` - **Dispatcher scripts:** `/etc/NetworkManager/dispatcher.d/` --- ## GUI Tools / GUI инструмСнты ### nm-connection-editor / Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ соСдинСний ```bash nm-connection-editor # Launch connection editor / Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ соСдинСний ``` **Use Cases:** - Create/edit/delete connections - Configure advanced settings (IPv6, MTU, DNS) - Set up WiFi, VPN, mobile broadband - Configure firewall zones ### GNOME Network Settings / Настройки сСти GNOME ```bash gnome-control-center network # Launch GNOME network settings / Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ настройки сСти ``` ### Network Manager Applet / АпплСт NetworkManager ```bash nm-applet # Start system tray applet / Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π°ΠΏΠΏΠ»Π΅Ρ‚ Π² Ρ‚Ρ€Π΅Π΅ ``` **Features:** - Click icon in system tray to connect/disconnect - View available WiFi networks - Connect to VPN - View connection info --- ## Text UI (nmtui) / ВСкстовый интСрфСйс ### Launch nmtui / Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ nmtui ```bash 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` ```bash #!/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 ``` ```bash 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 / Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ случаи использования - Update DNS settings when VPN connects - Mount network shares when connected to specific network - Adjust firewall rules based on network location - Sync time servers --- ## Connection Management / Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ соСдинСниями ### NetworkManager Configuration File / Π€Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ `/etc/NetworkManager/NetworkManager.conf` ```ini [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 ``` ```bash sudo systemctl restart NetworkManager # Apply config / ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ``` ### Connection File Example / ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° соСдинСния `/etc/NetworkManager/system-connections/office-wifi.nmconnection` ```ini [connection] id=office-wifi uuid= type=wifi autoconnect=true [wifi] ssid=Office_Network mode=infrastructure [wifi-security] key-mgmt=wpa-psk psk= [ipv4] method=auto [ipv6] method=auto ``` > [!CAUTION] > Connection files contain passwords in plain text. Ensure permissions are `600` (read/write for root only). ```bash sudo chmod 600 /etc/NetworkManager/system-connections/* # Secure permissions / БСзопасныС ΠΏΡ€Π°Π²Π° ``` --- ## Troubleshooting & Tools / УстранСниС Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ ### Common Issues / Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ```bash # 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 managed yes # Force NM management / ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ # No network icon in tray / НСт ΠΈΠΊΠΎΠ½ΠΊΠΈ сСти Π² Ρ‚Ρ€Π΅Π΅ nm-applet & # Start applet / Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π°ΠΏΠΏΠ»Π΅Ρ‚ ``` ### Debug Logging / ΠžΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠ΅ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ```bash 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 / ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ сСкрСты соСдинСний ```bash nmcli -s connection show # 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 / Полная |