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
Вывод может быть шире терминала. Пример вывода (упрощённо):
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
Чтобы активировать профиль, поднимите его по имени или UUID:
nmcli connection up ethernet-enp0s8-1Проверить активные соединения:
nmcli connection show --active
В примере ethernet-enp0s8-1 привязан к устройству enp0s8 и состояние — активное.
Изменение параметров подключения
Чтобы перевести профиль с DHCP на статический IP, нужно задать адрес и установить метод manual.
- Установка адреса:
nmcli connection modify ethernet-enp0s8-1 ipv4.address 192.168.1.40/24- Установка метода получения 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
Чтобы вернуть DHCP, используйте auto вместо manual:
nmcli connection modify ethernet-enp0s8-1 ipv4.method autoУправление устройствами
Команды раздела device дают информацию и позволяют менять состояние интерфейсов.
Посмотреть статус всех устройств:
nmcli device status
Подробности по устройству
Просмотр полной информации по конкретному устройству (или по всем, если имя не задано):
nmcli device show enp0s8
Часто полезные поля:
- 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>. Некоторые команды интерактивного редактора:
print— вывести все свойства текущего профиля.goto— перейти в секцию (например,ipv4).set— установить свойство.save— сохранить изменения.quit— выйти.
print
Переход к IPv4-настройкам:
goto ipv4
Установка метода в auto:
set method auto
Если при изменении спрашивают очистить ipv4.addresses, решите: очистить старый статический адрес или оставить (enter по умолчанию — yes).
Сохранение и выход:
save
quit
Часто используемые операции и команды (чек-лист)
Общие сценарии и команды, которые пригодятся в повседневной работе:
- Проверить состояние 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 или альтернативный маршрут, чтобы сохранить доступ.
Типичные ошибки и как их исправить:
- Неправильная маска/адрес — проверьте
/24vs255.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 — минимализм и предсказуемость для контейнеров и серверов.
Минимальная методология изменений в продакшне
- Подготовьте документ изменения: что будет изменено, почему, ожидаемый результат.
- Выполните изменение на тестовой машине и зафиксируйте команды.
- Перед применением на проде создайте резервный доступ (KVM, консоль провайдера, второй IP).
- Выполните изменение и проверку (ping, curl, службы).
- Откат — план на случай потери связи.
Мастер-справочник команд (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предыдущий профиль.
Решение проблем и откат изменений
Простой план отката:
- Если соединение упало, попытайтесь поднять предыдущий профиль по имени или UUID.
nmcli connection up - Если SSH упал, используйте консоль провайдера или прямой доступ для восстановления.
- При неправильных IP-адресах используйте
nmcli connection modifyи затем bounce.ipv4.address
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. Он покрывает полный цикл: от создания профилей до тонкой настройки параметров и отладки. Освоив базовые команды и рабочие сценарии, вы сможете безопасно управлять сетями на серверах и в удалённых системах.
Важно: при удалённом администрировании всегда планируйте откат и резервные каналы доступа.
Похожие материалы
Как узнать IP-адрес в Linux
Как удалить cookies в популярных браузерах
Как векторизовать рисунок Procreate в Illustrator
Режим вождения Google Maps — настройка и советы
Изменить качество резервного копирования Google Фото