Открыть сервис

NetworkManager

NetworkManager — это программное обеспечение для управления сетевыми подключениями в операционных системах на ядре Linux и других Unix-подобных системах. Оно предоставляет унифицированный интерфейс для настройки и контроля проводных (Ethernet), беспроводных (Wi-Fi), мобильных (3G/4G/5G, PPPoE), VPN-соединений, а также интерфейсов Bluetooth и DSL. NetworkManager автоматизирует процесс подключения к сетям, переключения между ними и управления сетевыми настройками, обеспечивая работу как в графической среде рабочего стола, так и в консольном режиме.

История

Проект NetworkManager был основан в 2004 году компанией Red Hat в рамках инициативы по улучшению пользовательского опыта в Linux. Первоначально он разрабатывался как замена устаревшим и сложным в настройке скриптам ifup/ifdown, которые требовали ручного редактирования конфигурационных файлов. Основной целью было создание инструмента, который бы автоматически обнаруживал доступные сети и подключался к ним без участия пользователя, аналогично тому, как это работает в Windows (с помощью службы Wireless Zero Configuration) или macOS.

Первая стабильная версия (0.6) вышла в 2005 году. В последующие годы NetworkManager был принят в качестве стандартного сетевого менеджера в большинстве дистрибутивов Linux, включая Fedora, Ubuntu, Debian, openSUSE и Arch Linux. В 2007 году проект был выпущен под лицензией GNU General Public License (GPL) версии 2. Ключевыми вехами стали поддержка WPA2 Enterprise, VPN-плагинов (OpenVPN, PPTP, L2TP/IPsec), а также интеграция с systemd в 2010-х годах.

Архитектура и принцип работы

NetworkManager состоит из двух основных компонентов: фонового демона (NetworkManager) и набора клиентских интерфейсов. Демон работает с привилегиями суперпользователя и отвечает за обнаружение оборудования, управление соединениями и обработку запросов. Он взаимодействует с ядром через системные вызовы и библиотеки, такие как libnl (для управления сетевыми интерфейсами) и wpa_supplicant (для настройки Wi-Fi).

Демон NetworkManager

Демон (NetworkManager.service) запускается при старте системы и работает в фоновом режиме. Он отслеживает состояние сетевых интерфейсов с помощью udev и подсистемы netlink. При обнаружении нового интерфейса (например, после подключения USB-адаптера) демон автоматически настраивает его, используя сохранённые профили подключений. Профили хранятся в виде конфигурационных файлов в /etc/NetworkManager/system-connections/ (каждый профиль — отдельный файл) или в виде ключей в системном реестре (для некоторых дистрибутивов).

Клиентские интерфейсы

Для взаимодействия пользователя с демоном используются различные клиенты:

  • nmcli — консольная утилита командной строки. Позволяет управлять сетями, создавать, редактировать и удалять подключения, а также получать информацию о состоянии сети. Пример: nmcli device wifi connect "SSID" password "пароль".
  • nmtui — текстовый интерфейс на основе curses. Предоставляет меню для настройки сети без использования графической оболочки.
  • Графические апплеты — встроенные в среды рабочего стола (GNOME, KDE, Xfce) виджеты, которые отображают список доступных сетей и позволяют подключаться к ним одним кликом. В GNOME это апплет nm-applet.
  • D-Bus API — программный интерфейс, позволяющий сторонним приложениям (например, системным мониторам или сетевым менеджерам) управлять NetworkManager через шину D-Bus.

Классификация и виды подключений

NetworkManager поддерживает широкий спектр типов сетевых соединений, которые классифицируются по способу подключения и используемому протоколу:

Проводные соединения (Ethernet)

Настройка сетевых интерфейсов, подключённых через кабель (витая пара, оптоволокно). Поддерживаются статические IP-адреса, DHCP (включая DHCPv6), а также настройка DNS-серверов и маршрутов.

Беспроводные соединения (Wi-Fi)

Управление точками доступа, поддержка стандартов 802.11a/b/g/n/ac/ax. NetworkManager использует wpa_supplicant для аутентификации (WPA/WPA2/WPA3, WEP, EAP). Возможно подключение к скрытым сетям и настройка приоритетов.

Мобильные широкополосные соединения (WWAN)

Поддержка модемов 3G/4G/5G через протоколы PPP, QMI (Qualcomm MSM Interface) и MBIM (Mobile Broadband Interface Model). Для работы требуется пакет ModemManager.

Виртуальные частные сети (VPN)

NetworkManager предоставляет модульную архитектуру для VPN-подключений. Поддерживаются плагины для OpenVPN, WireGuard, PPTP, L2TP/IPsec, OpenConnect (Cisco AnyConnect), SSTP и других протоколов. Каждый плагин устанавливается отдельно.

Bluetooth-сети

Подключение к интернету через Bluetooth PAN (Personal Area Network) или DUN (Dial-Up Networking).

DSL и PPPoE

Поддержка соединений через ADSL-модемы с использованием протокола PPPoE (Point-to-Point Protocol over Ethernet).

Мосты и агрегация

NetworkManager может управлять сетевыми мостами (bridge) и агрегацией каналов (bonding), что используется в виртуализации (например, для KVM) и серверных конфигурациях.

Настройка и конфигурация

Основные файлы конфигурации

Глобальные настройки NetworkManager хранятся в файле /etc/NetworkManager/NetworkManager.conf. В нём можно задать параметры, такие как:

  • managed=true/false — разрешить управление интерфейсами, не указанными в unmanaged-devices.
  • plugins=keyfile,ifcfg-rh — указать, какие плагины использовать для хранения профилей (keyfile — для современных дистрибутивов, ifcfg-rh — для совместимости с Red Hat).
  • dns=default,unbound,dnsmasq — выбор DNS-резолвера (см. раздел ниже).

Управление через nmcli

Утилита nmcli позволяет выполнять все основные операции. Примеры:

  • Просмотр доступных устройств: nmcli device status
  • Сканирование Wi-Fi сетей: nmcli device wifi list
  • Подключение к сети: nmcli device wifi connect "SSID" password "пароль"
  • Создание статического подключения: nmcli connection add con-name "eth0-static" type ethernet ifname eth0 ip4 192.168.1.100/24 gw4 192.168.1.1

Интеграция с DNS

NetworkManager может управлять системным резолвером, записывая настройки DNS в /etc/resolv.conf. В зависимости от конфигурации, он может использовать:

  • dnsmasq — локальный кэширующий DNS-сервер, который также может выполнять функции DHCP-сервера.
  • systemd-resolved — служба DNS, входящая в состав systemd.
  • unbound — валидирующий DNS-резолвер с поддержкой DNSSEC.

Применение и значение

NetworkManager является стандартом де-факто для управления сетями в Linux. Его использование значительно упрощает настройку сети для конечных пользователей, особенно в мобильных сценариях (ноутбуки, планшеты). В серверных средах NetworkManager часто заменяют на более традиционные инструменты (например, systemd-networkd или netplan), но он остаётся популярным благодаря своей гибкости и поддержке сложных конфигураций.

Преимущества

  • Автоматическое обнаружение и подключение к сетям.
  • Поддержка множества типов соединений.
  • Интеграция с графическими средами рабочего стола.
  • Возможность управления через D-Bus для автоматизации.

Критика

  • Избыточность для серверов, где требуется статическая настройка без автоматизации.
  • Иногда вызывает проблемы с совместимостью при использовании нестандартных сетевых интерфейсов (например, виртуальных).
  • Конфликты с другими сетевыми менеджерами (например, systemd-networkd) при одновременной работе.

Интересные факты

  • NetworkManager поддерживает «подключения по требованию» (on-demand), когда соединение активируется только при попытке доступа в интернет.
  • Для работы с VPN-соединениями NetworkManager использует плагины, которые не входят в основной пакет, что позволяет избежать раздувания кода.
  • В дистрибутиве Fedora NetworkManager является единственным поддерживаемым сетевым менеджером, начиная с версии 15 (2012 год).
  • Проект активно развивается сообществом; последняя стабильная версия на момент написания — 1.48 (2024 год).

Источники

  • Официальная документация NetworkManager (GNOME Developer Center)
  • Страница проекта на GitLab (gitlab.freedesktop.org/NetworkManager/NetworkManager)
  • «Linux Network Administrator's Guide» (O'Reilly Media)
  • Статья «NetworkManager» в Arch Wiki
  • Материалы Red Hat Enterprise Linux 9 — Networking Guide

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →