Home » nmcli для новичков: управление NetworkManager из терминала
nmcli для новичков: управление NetworkManager из терминала

nmcli для новичков: управление NetworkManager из терминала

Если ты когда-нибудь управлял сервером на Linux — будь то облачный VPS, контейнер в Docker или выделенный железный монстр — то знаешь, что сеть это не просто «подключил и забыл». Иногда нужно что-то переткнуть, поменять IP, прописать DNS, быстро посмотреть, что вообще происходит с интерфейсами. И вот тут на сцену выходит nmcli — командная утилита для управления NetworkManager. Эта статья — про то, как быстро и без боли освоить nmcli, чтобы не залипать в дебрях man-страниц и не плодить лишние скрипты на bash.

О чём эта статья и зачем вообще нужен nmcli

Здесь разберёмся, что такое nmcli, почему это не страшно, как кажется, и чем он может помочь в реальной жизни — на практике, а не в теории. Будет про алгоритмы работы, быстрые команды, реальные кейсы, а ещё — про типичные ошибки, лайфхаки и автоматизацию. Если ты хочешь управлять сетями на сервере без танцев с бубном и GUI — nmcli твой друг. Особенно если работаешь с VPS, Docker, облаками или просто хочешь автоматизировать рутину.

Почему это важно: типичная проблема

  • Ты арендуешь VPS или поднимаешь контейнер — и вдруг надо сменить IP, добавить вторую сетевую карту, прописать кастомный DNS.
  • На сервере только SSH, никакого графического интерфейса — а сеть надо настраивать быстро.
  • Нужно автоматизировать сетевые настройки в скриптах — и хочется что-то понятное, а не ковыряние в /etc/network/interfaces или systemd-networkd.

Вот тут и появляется nmcli: это CLI-клиент для NetworkManager, который есть практически во всех современных дистрибутивах (CentOS, Fedora, Ubuntu, Debian, RHEL, SUSE и даже в некоторых минималках). С помощью nmcli можно делать практически всё, что обычно делают через GUI или ручное редактирование конфигов — но быстро, в терминале и автоматизируемо.

Как это работает? Алгоритмы, структура, немного магии

NetworkManager — это демон, который управляет сетевыми интерфейсами, профилями, соединениями, VPN, Wi-Fi, Ethernet и даже мобильными модемами. Он работает как прослойка между ядром Linux и приложениями, которые хотят что-то узнать или поменять в сетевой конфигурации.

nmcli — это просто клиентская утилита, которая общается с демоном NetworkManager через D-Bus. Фактически, это твой «пульт управления» для сетей. Всё, что ты делаешь через nmcli, мгновенно применяется, и ты можешь видеть результат тут же.

  • Профили (connections): это наборы настроек для каждого интерфейса. Можно создавать, редактировать, удалять, активировать.
  • Интерфейсы (devices): физические или виртуальные сетевые карты, которые управляются NetworkManager.
  • Состояния (status): можно смотреть текущие подключения, их параметры, логи.

Всё это можно делать одной командой из терминала — никаких перезагрузок, никаких ручных правок конфигов (но если хочется — можно и так, но не советую).

Как быстро и просто всё настроить? Практические советы и схемы

Вот тебе пошаговый гайд, как за 5 минут подружиться с nmcli. Все команды — в блоках, чтобы можно было сразу копировать.

1. Проверяем, что NetworkManager и nmcli есть в системе


# Проверяем статус демона
systemctl status NetworkManager

# Проверяем версию nmcli
nmcli --version

Если чего-то не хватает — ставим через пакетный менеджер (например, apt install network-manager или yum install NetworkManager).

2. Смотрим список сетевых устройств и соединений


# Список устройств
nmcli device

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

3. Быстрое подключение интерфейса (например, eth0)


nmcli device connect eth0

Если интерфейс неактивен — этой командой поднимем его за секунду.

4. Настройка статического IP (пример для eth0)


nmcli con add type ethernet ifname eth0 con-name static-eth0 ip4 192.168.1.100/24 gw4 192.168.1.1
nmcli con mod static-eth0 ipv4.dns "8.8.8.8 1.1.1.1"
nmcli con up static-eth0

Всё — теперь у интерфейса eth0 статический IP, шлюз и DNS. Можно менять параметры через nmcli con mod.

5. Включить DHCP обратно


nmcli con mod static-eth0 ipv4.method auto
nmcli con up static-eth0

6. Отключить/включить интерфейс


nmcli device disconnect eth0
nmcli device connect eth0

7. Быстро посмотреть IP-адреса


nmcli -p device show

8. Добавить второй IP на интерфейс (alias)


nmcli con mod static-eth0 +ipv4.addresses 192.168.1.101/24
nmcli con up static-eth0

9. Сбросить все настройки (если что-то пошло не так)


nmcli con delete static-eth0

Примеры, кейсы — что бывает и как лучше делать

Кейс Решение через nmcli Плюсы Минусы
Поменять IP на VPS без перезагрузки nmcli con mod …
nmcli con up …
Мгновенно, не рвётся SSH-сессия (если аккуратно) Можно уронить сеть, если ошибиться
Добавить второй IP для Docker-контейнера nmcli con mod … +ipv4.addresses … Гибко, можно автоматизировать Требует понимания, как работает routing
Переключить с DHCP на статический IP nmcli con mod … ipv4.method manual … Быстро, без ручного редактирования файлов Нужно помнить имя профиля
Сбросить настройки после экспериментов nmcli con delete … Чисто и просто Можно случайно удалить нужный профиль

Ошибки новичков, мифы и похожие решения

  • Ошибка: Путают device и connection.
    Рекомендация: device — это физическая карта, connection — профиль с настройками. Не перепутай!
  • Ошибка: Меняют IP через ifconfig или ip addr, а потом удивляются, что после перезагрузки всё слетает.
    Рекомендация: Меняй через nmcli — тогда настройки сохранятся.
  • Миф: «NetworkManager — только для десктопа».
    Факт: Он отлично работает на серверах, особенно когда нужно динамически управлять сетями.
  • Похожее ПО: nmtui (полу-графический интерфейс), ifupdown (старый Debian-стиль), systemd-networkd (минималистичный, но не такой гибкий).

Статистика и сравнение

  • NetworkManager с nmcli по умолчанию стоит в Ubuntu Server, CentOS, Fedora, RHEL, SUSE — почти везде, кроме самых минималистичных систем.
  • Работает с Ethernet, Wi-Fi, VPN, VLAN, Bonding, Bridge — практически со всеми типами сетей.
  • Позволяет автоматизировать до 90% типовых задач по сетям через скрипты и Ansible.
Утилита Гибкость Автоматизация Удобство Где использовать
nmcli Высокая Отлично CLI Серверы, облако, скрипты
nmtui Средняя Плохо TUI Вручную, когда нет X
ifconfig/ip Минимальная Плохо CLI Разовые задачи, отладка
systemd-networkd Средняя Средне Конфиг файлы Минималистичные системы

Интересные факты и нестандартные способы использования

  • nmcli можно использовать прямо в bash-скриптах для автоматизации развёртывания серверов и контейнеров.
  • Можно динамически переключать профили — например, если сервер мигрирует между датацентрами с разной сетью.
  • С помощью nmcli можно на лету создавать VLAN, bridge, bonding — не правя руками конфиги.
  • Можно использовать nmcli для мониторинга: парсить вывод и отправлять алерты, если сеть отвалилась.
  • Работает даже с Wi-Fi и VPN — удобно для edge-серверов и IoT.
  • Интегрируется с Ansible и другими инструментами IaC — можно писать роли для массового управления сетью.

Автоматизация и скрипты: новые возможности

Одна из главных фишек nmcli — это автоматизация. Всё, что ты делаешь руками, можно засунуть в скрипт или Ansible playbook. Примеры:


# Скрипт для быстрой смены IP и DNS
nmcli con mod eth0 ipv4.addresses 10.10.10.2/24
nmcli con mod eth0 ipv4.gateway 10.10.10.1
nmcli con mod eth0 ipv4.dns "1.1.1.1 8.8.8.8"
nmcli con up eth0

Можно использовать переменные окружения, циклы, условия — и делать массовые обновления на десятках серверов. Особенно актуально для облачных инфраструктур, когда серверы часто клонируются или мигрируют.

Для Ansible есть модуль community.general.nmcli, который позволяет управлять сетями без написания shell-скриптов.

Заключение и рекомендации

  • Если ты работаешь с VPS, облачными или выделенными серверами, Docker или контейнерами — nmcli это must-have инструмент.
  • Он позволяет быстро, гибко и надёжно управлять сетями, не лезть в конфиги и не бояться перезагрузок.
  • Можно автоматизировать рутину, писать скрипты, интегрировать с Ansible и другими DevOps-инструментами.
  • Ошибки легко откатить, а профили — быстро клонировать или удалять.
  • Освой nmcli — и ты забудешь про ручное ковыряние в /etc/network/interfaces и вечные «а почему после ребута всё пропало?»

Полезные ссылки для погружения:

Если ты ищешь, где быстро арендовать VPS — здесь, а если нужен выделенный сервер — тут.

Пробуй, экспериментируй, автоматизируй и не бойся сетей — с nmcli это реально просто!


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked