Гид по технологиям

nmcli — управление NetworkManager из командной строки

7 min read Сеть Обновлено 22 Dec 2025
nmcli: управление NetworkManager
nmcli: управление NetworkManager

nmcli позволяет управлять NetworkManager полностью из терминала: просматривать состояния, создавать и изменять профили подключения, включать и выключать интерфейсы, назначать статические IP и работать в интерактивном редакторе. Подойдёт для серверов без GUI и удалённого администрирования по SSH. В статье есть пошаговые команды, приёмы отладки, контроль безопасности и короткие чеклисты для ролей.

Человек с телефоном перед компьютером

Быстрые ссылки

  • Команда nmcli
  • Концепции и синтаксис nmcli
  • Первые шаги с nmcli
  • Понимание архитектуры соединений
  • Управление устройствами
  • Дополнительные возможности в man

О чём эта статья

Эта статья — практический путеводитель по nmcli, инструменту для управления NetworkManager из командной строки в Linux. Вы получите рабочие примеры, объяснение ключевых понятий, чеклисты для администраторов и подсказки по отладке. Если вы администрируете серверы без графического окружения или работаете по SSH, nmcli — основной инструмент для сетевых изменений.

Команда nmcli

Команда nmcli появилась в 2010 году. Вместе с командой ip она заменяет устаревшую ifconfig.

Несколько причин использовать nmcli:

  • Поддерживается современными дистрибутивами и NetworkManager.
  • Позволяет управлять профилями подключения и интерфейсами в одном инструменте.
  • Работает в скриптах и по SSH.

Пример устаревшей команды, которую теперь заменяют:

ifconfig

Если вы ещё используете ifconfig, стоит освоить nmcli заранее: дистрибутивы постепенно убирают старые утилиты.

Концепции и синтаксис nmcli

Краткое определение терминов

  • NetworkManager: системный демон, управляющий сетями. nmcli — клиент для взаимодействия с ним.
  • Connection: объект конфигурации сети (профиль), содержащий настройки канального уровня и IP.
  • Device: физический или виртуальный сетевой интерфейс (например, enp0s3).

Общая форма команды:

nmcli    [arguments]

Категории параметров:

  • Options — влияют на поведение nmcli (например, -t для табличного вывода).
  • Sections — наборы команд (connection, device, general и т.д.).
  • Actions — конкретные действия (show, add, modify, up, down, edit и др.).

Разделы (sections) наиболее часто используемые:

  • help — справка по командам.
  • general — общее состояние NetworkManager.
  • networking — управление глобальной сетевой службой.
  • radio — управление радиочастями (wifi/bluetooth).
  • monitor — наблюдение за событиями.
  • connection — работа с профилями подключений.
  • device — управление устройствами.
  • secret — регистрация секрет-агента (редко используемый).

Первые шаги с nmcli

Проверим, что NetworkManager активен и доступен:

nmcli general status

Для просмотра всех профилей подключения (в памяти и на диске):

nmcli connection show

Вывод nmcli connection show, столбцы шире терминала

Вывод может быть шире терминала. Пример вывода (упрощённо):

NAME UUID TYPE DEVICE
Wired connection 1 d2864443-9cee-31ec-ab2e-55e9ebddd53e ethernet enp0s3
ethernet-enp0s8 9aad8efa-3427-4a5c-bef5-270340cd33d0 ethernet enp0s8
ethernet-enp0s9 5bc49cef-bc3d-4832-9073-460b408932b6 ethernet enp0s9

В примере тестовая машина использует Ubuntu 21.10 (предрелиз) и имеет три интерфейса: enp0s3, enp0s8, enp0s9.

Почему connection и device отдельно

  • Connection — это конфигурация (профиль): какой тип, метод получения IP, имя, UUID и т. п.
  • Device — это аппаратная или виртуальная сетевая карта, на которую профиль может быть применён.

Connection и Device связываются, когда профиль активирован на конкретном интерфейсе.

Добавление сетевого подключения

Команда для создания базового Ethernet-подключения на интерфейсе enp0s8 (требуется sudo):

sudo nmcli connection add type ethernet ifname enp0s8

Это создаёт профиль с автоматически сгенерированным именем вроде ethernet-enp0s8-1 и UUID. Проверьте список снова:

nmcli connection show

Вывод команды nmcli connection show в терминальном окне

Чтобы активировать профиль, поднимите его по имени или UUID:

nmcli connection up ethernet-enp0s8-1

Проверить активные соединения:

nmcli connection show --active

Вывод nmcli connection show --active в терминальном окне

В примере ethernet-enp0s8-1 привязан к устройству enp0s8 и состояние — активное.

Изменение параметров подключения

Чтобы перевести профиль с DHCP на статический IP, нужно задать адрес и установить метод manual.

  1. Установка адреса:
nmcli connection modify ethernet-enp0s8-1 ipv4.address 192.168.1.40/24
  1. Установка метода получения IPv4:
nmcli connection modify ethernet-enp0s8-1 ipv4.method manual

Подсказка: /24 — это маска подсети в формате CIDR, эквивалент 255.255.255.0.

Изменения применяются после перезапуска (bounce) соединения:

nmcli connection down ethernet-enp0s8-1
nmcli connection up ethernet-enp0s8-1

Команда nmcli connection down в терминальном окне

Чтобы вернуть DHCP, используйте auto вместо manual:

nmcli connection modify ethernet-enp0s8-1 ipv4.method auto

Управление устройствами

Команды раздела device дают информацию и позволяют менять состояние интерфейсов.

Посмотреть статус всех устройств:

nmcli device status

Вывод nmcli device status в терминале

Подробности по устройству

Просмотр полной информации по конкретному устройству (или по всем, если имя не задано):

nmcli device show enp0s8

Детали устройства enp0s8, вывод nmcli device show

Часто полезные поля:

  • GENERAL.DEVICE — имя устройства.
  • GENERAL.TYPE — тип (ethernet, wifi и т.д.).
  • GENERAL.HWADDR — MAC-адрес.
  • GENERAL.STATE — состояние (connected/disconnected).
  • IP4.ADDRESS[1] — IPv4-адрес и маска.
  • CONNECTION — профиль, активный на устройстве.

Интерактивный редактор nmcli

У nmcli есть простой интерактивный режим для редактирования профилей:

nmcli connection edit ethernet-enp0s8-1

Интерактивный редактор nmcli для ethernet-enp0s8-1

Внутри вы увидите приглашение nmcli>. Некоторые команды интерактивного редактора:

  • print — вывести все свойства текущего профиля.
  • goto
    — перейти в секцию (например, ipv4).
  • set — установить свойство.
  • save — сохранить изменения.
  • quit — выйти.
print

Вывод команды print в интерактивном редакторе nmcli

Переход к IPv4-настройкам:

goto ipv4

Переход к настройкам ipv4 в интерактивном редакторе

Установка метода в auto:

set method auto

Установка метода ipv4 на auto в интерактивном редакторе

Если при изменении спрашивают очистить ipv4.addresses, решите: очистить старый статический адрес или оставить (enter по умолчанию — yes).

Сохранение и выход:

save
quit

Сохранение изменений в интерактивном редакторе nmcli

Часто используемые операции и команды (чек-лист)

Общие сценарии и команды, которые пригодятся в повседневной работе:

  • Проверить состояние NetworkManager:
nmcli general status
  • Показать все подключения:
nmcli connection show
  • Показать активные подключения:
nmcli connection show --active
  • Поднять профиль:
nmcli connection up 
  • Опустить профиль:
nmcli connection down 
  • Изменить параметр:
nmcli connection modify   
  • Посмотреть устройства:
nmcli device status
  • Подробно по устройству:
nmcli device show 

Отладка и рекомендации по безопасным изменениям

Important: если вы подключены к машине по SSH через сетевой интерфейс, не отключайте это соединение до тех пор, пока не настроите альтернативный доступ. Иначе вы потеряете удалённую сессию.

Отладочные приёмы:

  • Всегда проверяйте nmcli connection show --active после изменений.
  • Используйте nmcli -t -f ALL connection show для табличного вывода значений, удобного для парсинга.
  • При проблемах временно назначайте второй IP или альтернативный маршрут, чтобы сохранить доступ.

Типичные ошибки и как их исправить:

  • Неправильная маска/адрес — проверьте /24 vs 255.255.255.0.
  • Конфликтующие маршруты — проверьте ip route и nmcli device show.
  • Неактивный интерфейс — используйте nmcli device connect или nmcli device set managed yes в особых случаях.

Альтернативные подходы

Если вы не хотите использовать NetworkManager/ nmcli на сервере, альтернативы:

  • Управление через systemd-networkd + networkctl — более пригодно для серверных окружений без NetworkManager.
  • Ручная настройка через /etc/network/interfaces (устаревшая, зависит от дистрибутива).

Выбор зависит от вашей среды: NetworkManager даёт удобство и единый API, systemd-networkd — минимализм и предсказуемость для контейнеров и серверов.

Минимальная методология изменений в продакшне

  1. Подготовьте документ изменения: что будет изменено, почему, ожидаемый результат.
  2. Выполните изменение на тестовой машине и зафиксируйте команды.
  3. Перед применением на проде создайте резервный доступ (KVM, консоль провайдера, второй IP).
  4. Выполните изменение и проверку (ping, curl, службы).
  5. Откат — план на случай потери связи.

Мастер-справочник команд (cheat sheet)

Короткий набор команд для быстрого доступа:

# Статус NM
nmcli general status

# Список профилей
nmcli connection show

# Активные профили
nmcli connection show --active

# Поднять/опустить профиль
nmcli connection up 
nmcli connection down 

# Изменить параметр
nmcli connection modify  ipv4.address 192.168.1.40/24
nmcli connection modify  ipv4.method manual

# Просмотр устройств
nmcli device status
nmcli device show 

# Интерактивный редактор
nmcli connection edit 

Критерии приёмки

Когда изменение считается успешным:

  • Профиль присутствует в nmcli connection show.
  • Интерфейс имеет ожидаемый IP в nmcli device show .
  • Сеть отвечает на ожидаемые тесты (ping шлюзу, доступ к необходимым сервисам).
  • Если изменение выполнено удалённо, SSH-сессия сохранена или доступ обеспечен альтернативно.

Ролевые чек-листы

Системный администратор:

  • Проверить текущие профили и устройства.
  • Подготовить резервный доступ.
  • Применить изменения и проверить доступность служб.

DevOps инженер:

  • Автоматизировать команды в Ansible/Terraform/скриптах.
  • Протестировать в CI окружении.
  • Обновить документацию и шаблоны конфигураций.

Служба поддержки:

  • Знать команды для быстрого просмотра nmcli connection show --active и nmcli device status.
  • Уметь откатить изменения командой nmcli connection down и вернуть up предыдущий профиль.

Решение проблем и откат изменений

Простой план отката:

  1. Если соединение упало, попытайтесь поднять предыдущий профиль по имени или UUID.
nmcli connection up 
  1. Если SSH упал, используйте консоль провайдера или прямой доступ для восстановления.
  2. При неправильных IP-адресах используйте nmcli connection modify ipv4.address и затем bounce.

Decision flowchart (упрощённая последовательность действий)

flowchart TD
  A[Начало: нужно изменить сеть?] --> B{Вы подключены по SSH?}
  B -- Да --> C[Подготовьте резервный доступ 'второй IP/KVM']
  B -- Нет --> D[Можно безопасно применить изменения]
  C --> D
  D --> E[Выполните изменения на тестовой машине]
  E --> F[Примените изменения на проде]
  F --> G{Проверки пройдены?}
  G -- Да --> H[Завершить]
  G -- Нет --> I[Откатить изменения и проанализировать журнал]
  I --> H

Безопасность и приватность

  • Никогда не храните пароли/ключи в открытом виде в профилях. Используйте секрет-менеджер или возможности NM для безопасного хранения.
  • Проверяйте права на файлы конфигурации, особенно в /etc/NetworkManager/system-connections.
  • Для автоматизации используйте безопасные методы передачи секретов (Ansible vault, HashiCorp Vault и т.д.).

Что ещё в man

nmcli имеет обширную man-страницу (более 1200 строк) с описанием всех полей и значений. Читайте man для детального понимания опций и допустимых значений:

man nmcli

Когда nmcli не подходит

  • На лёгких контейнерах и минимальных серверах, где предпочтительнее systemd-networkd.
  • В средах, где требуется полностью декларативное управление через другой инструмент и отключён NetworkManager.

Краткий словарь

  • NetworkManager — демон управления сетями.
  • nmcli — CLI-клиент для NetworkManager.
  • connection — профиль подключения.
  • device — аппаратный/виртуальный интерфейс.
  • UUID — уникальный идентификатор профиля.

Заключение

nmcli — мощный инструмент для управления сетями в Linux. Он покрывает полный цикл: от создания профилей до тонкой настройки параметров и отладки. Освоив базовые команды и рабочие сценарии, вы сможете безопасно управлять сетями на серверах и в удалённых системах.

Важно: при удалённом администрировании всегда планируйте откат и резервные каналы доступа.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как узнать IP-адрес в Linux
Сеть

Как узнать IP-адрес в Linux

Как удалить cookies в популярных браузерах
Браузеры

Как удалить cookies в популярных браузерах

Как векторизовать рисунок Procreate в Illustrator
Дизайн

Как векторизовать рисунок Procreate в Illustrator

Режим вождения Google Maps — настройка и советы
How-to

Режим вождения Google Maps — настройка и советы

Изменить качество резервного копирования Google Фото
Инструкции

Изменить качество резервного копирования Google Фото

Заменить иконки 7‑Zip на более красивые
Windows

Заменить иконки 7‑Zip на более красивые