Настройка сети на Linux‑сервере с помощью nmcli

Первое, что обычно делается после установки Linux как серверной машины — настройка сетевого интерфейса для удалённого доступа. С ноутбука или рабочей станции вы сможете управлять сервером по SSH, поэтому автоматически настраиваем сеть сразу после установки.
В этом руководстве используется nmcli — Network Manager Command Line tool — для конфигурации сетевых интерфейсов.
Введение и базовый синтаксис
Команда nmcli запускается от root (или через sudo). Общая форма:
nmcli [OPTIONS] OBJECT { COMMAND | help }OBJECT может быть: connection, device, general, networking, radio, agent, monitor. Можно использовать сокращения префиксов, например:
nmcli -p device --> nmcli -p dev --> nmcli -p dОпция -p это –pretty — вывод в человеко-читаемом виде.
В этом материале мы подробно рассмотрим объекты device и connection.
Работа с устройствами (device)
Команды: status, show, set, connect, disconnect.
Показать список интерфейсов и их состояние:
nmcli device statusВывод содержит имя интерфейса (например, ens33), текущее состояние, тип и профиль подключения (connection profile).
Альтернативный, более человеко‑читаемый вывод:
nmcli -p device
Полный список свойств для конкретного интерфейса (много информации):
nmcli dev show ens33
Если нужно, интерфейс можно пометить как управляемый NetworkManager или нет. Посмотрите колонку STATE в выводе:
nmcli device status
Сделаем ens33 unmanaged (неуправляемым):
sudo nmcli device set ens33 managed no
После этого NetworkManager уже не будет менять настройки интерфейса ens33, хотя устройство может остаться подключённым.
Вернём управление:
sudo nmcli device set ens33 managed yesПроверим статус:
nmcli device status
Активировать или деактивировать устройство вручную:
Отключить интерфейс:
sudo nmcli dev disconnect ens33Ожидаем сообщение: Device “ens33” successfully disconnected.
Проверка статуса:
nmcli dev status
Подключить интерфейс обратно:
sudo nmcli dev connect ens33Вы увидите подтверждение активации и UUID профиля подключения.
Профили подключения (connection)
Профили (connection profiles) — это сохранённые конфигурации интерфейсов. Их можно просмотреть:
nmcli connection showПервая колонка — имя профиля (не имя устройства), вторая — UUID, последняя — имя привязанного устройства.
Файлы профилей хранятся в /etc/sysconfig/network-scripts/ (в системах на базе RHEL/CentOS) и называются ifcfg-<имя_профиля>.

Создание профиля с DHCP
В примере у меня есть два физ. интерфейса ens33 и ens37. Создадим профиль с DHCP для ens37:
sudo nmcli con add type ethernet con-name HomeDHCP ifname ens37HomeDHCP — имя профиля, ens37 — интерфейс.
Профиль создастся, но пока не будет активирован на интерфейсе:
sudo nmcli con up HomeDHCPУчтите, что имя профиля чувствительно к регистру.
После активации профиль прикрепляется к ens37.
nmcli con show HomeDHCPПроверяйте соответствующий файл ifcfg-HomeDHCP в /etc/sysconfig/network-scripts/.

Остановить (деактивировать) профиль:
sudo nmcli con down HomeDHCPУдалить профиль:
sudo nmcli con delete HomeDHCPСоздание профиля со статическим IP
Создадим профиль HomeStatic со статическим IPv4:
sudo nmcli con add type ethernet con-name HomeStatic ifname ens37 ip4 192.168.0.10/24 gw4 192.168.0.1Проверим список профилей:
nmcli con s
Активируем профиль:
sudo nmcli con up HomeStaticПосмотреть параметры интерфейса:
nmcli dev show ens33
Если в выводе нет DNS, добавим DNS-серверы к профилю:
sudo nmcli con modify HomeStatic ipv4.dns "8.8.8.8 8.8.4.4"Проверка:
nmcli c s HomeStatic
Добавить дополнительный DNS таким образом:
sudo nmcli c mod HomeStatic +ipv4.dns "192.168.0.1"
Удалить DNS адрес:
sudo nmcli c mod HomeStatic -ipv4.dns "192.168.0.1"Практическая методология для быстрых задач
Мини‑методология для базовой настройки сети на сервере:
- Проверить физические интерфейсы: nmcli device status
- Выбрать нужный интерфейс и посмотреть параметры: nmcli dev show
- Создать профиль: nmcli con add …
- Активировать профиль: nmcli con up
- При необходимости добавить DNS и маршруты: nmcli con modify …
- Проверить доступность: ping, ss, ip route
Эта последовательность помогает не потерять текущее подключение на удалённом сервере: сначала создавайте профиль, затем активируйте.
Быстрый чеклист для администратора
- Перед изменением убедитесь, что у вас есть консольный доступ (IPMI, VNC) на случай потери сетевого доступа.
- Создавайте профиль с уникальным именем и документируйте изменения.
- Всегда проверяйте, что профиль прикреплён к нужному ifname.
- Для удалённых серверов сначала протестируйте настройки локально или на временном интерфейсе.
Шпаргалка команд (cheat sheet)
- Просмотр устройств: nmcli device status
- Подробный вывод: nmcli dev show
- Список профилей: nmcli connection show
- Добавить DHCP профиль: nmcli con add type ethernet con-name NAME ifname IFACE
- Добавить статический профиль: nmcli con add type ethernet con-name NAME ifname IFACE ip4 ADDR/PL gw4 GATEWAY
- Активировать профиль: nmcli con up NAME
- Деактивировать профиль: nmcli con down NAME
- Удалить профиль: nmcli con delete NAME
- Добавить DNS: nmcli con modify NAME +ipv4.dns “8.8.8.8”
- Установить управляемость: nmcli device set IFACE managed yes|no
Когда nmcli не подходит или даёт ошибки
- NetworkManager может быть не установлен или отключён в вашей системе. В таких случаях nmcli не будет работать.
- На серверах, где используется systemd-networkd или netplan (Ubuntu серверы), конфигурация может управляться другими инструментами.
- Образ облачной VM может иметь «иммутабельные» сетевые конфиги (cloud-init), которые перезаписывают изменения.
Контрпример: если вы настраиваете минимальный контейнер без NetworkManager, используйте команды ip/ifconfig и редактирование /etc/network/interfaces или системные средства провайдера.
Альтернативные подходы
- nmtui — текстовый интерактивный интерфейс поверх NetworkManager, подходит для быстрого изменения через TUI.
- ip, iproute2 — низкоуровневые команды для временных настроек.
- /etc/network/interfaces (Debian/Ubuntu с ifupdown) и netplan (новые Ubuntu) — для постоянных конфигураций.
- cloud-init — для автоматической конфигурации VM при инициализации.
Отладка и основные причины проблем
- Проверьте, запущен ли NetworkManager: systemctl status NetworkManager
- Посмотрите логи: journalctl -u NetworkManager –since “1 hour ago”
- Убедитесь, что ifname совпадает с именем интерфейса из nmcli device status.
- Если профиль не активируется, проверьте конфликтующие маршруты и правила firewall.
Important: если вы находитесь по SSH, планируйте изменения так, чтобы не потерять соединение — используйте временные правила и тестирование.
Дерево принятия решения (simple)
flowchart TD
A[Нужно настроить сеть?] --> B{Есть NetworkManager?}
B -- Да --> C[Использовать nmcli или nmtui]
B -- Нет --> D{Используется netplan?}
D -- Да --> E[Использовать netplan apply]
D -- Нет --> F[Редактировать /etc/network/interfaces или ip]
C --> G{DHCP или статический?}
G -- DHCP --> H[nmcli con add type ethernet con-name NAME ifname IFACE]
G -- Статический --> I[nmcli con add ... ip4 ADDR/PL gw4 GATEWAY]Минимальные тесты и критерии приёмки
- Интерфейс активируется без ошибок: nmcli con up
— возвращает успешный статус. - IP-адрес и маршрут установлены: nmcli dev show
показывает ip4 и gw4. - DNS резолвинг работает: ping google.com или getent hosts google.com.
- Изменения сохраняются после перезагрузки (профиль присутствует в /etc/sysconfig/network-scripts/).
Роли и обязанности
- Системный администратор: создание/удаление профилей, тестирование доступности.
- Сеть-инженер: проектирование адресного плана и маршрутов, настройка VLAN/MTU.
- Девопс/автоматизация: внедрение cloud-init/netplan или скриптов для массовых изменений.
Краткий глоссарий
- NetworkManager: демон, управляющий сетевыми настройками.
- nmcli: CLI для NetworkManager.
- connection/profile: сохранённая конфигурация интерфейса.
- ifname: имя сетевого устройства (например, ens33).
Заключение
Мы рассмотрели основные команды nmcli для управления устройствами и профилями, разобрали создание DHCP и статических профилей, добавление DNS, управление состоянием интерфейсов и привели чеклист для безопасных изменений на удалённых серверах. В следующем руководстве можно автоматизировать эти шаги в скрипт и рассмотреть управление VLAN, мостами и Wi‑Fi через nmcli.
Краткое резюме:
- Используйте nmcli для декларативной и репродуцируемой конфигурации сети.
- Всегда проверяйте доступность до того, как отключите активное сетевое соединение.
- Если NetworkManager отсутствует, применяйте системные альтернативы (netplan, ifupdown, ip).
Спасибо за внимание. Если нужно — могу подготовить готовый скрипт автоматизации по вашим параметрам (имена интерфейсов, адреса, DNS).
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента