- Home »

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 это реально просто!
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.