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

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

• 6 min read • Сеть • Обновлено 23 Nov 2025
Настройка сети на Linux с nmcli
Настройка сети на Linux с nmcli

Терминал Linux и сеть

Первое, что обычно делается после установки 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

Подробности интерфейса ens33

Если нужно, интерфейс можно пометить как управляемый NetworkManager или нет. Посмотрите колонку STATE в выводе:

nmcli device status

Статус устройств с STATE

Сделаем ens33 unmanaged (неуправляемым):

sudo nmcli device set ens33 managed no

Установка unmanaged для ens33

После этого NetworkManager уже не будет менять настройки интерфейса ens33, хотя устройство может остаться подключённым.

Вернём управление:

sudo nmcli device set ens33 managed yes

Проверим статус:

nmcli device status

ens33 снова управляется

Активировать или деактивировать устройство вручную:

Отключить интерфейс:

sudo nmcli dev disconnect ens33

Ожидаем сообщение: Device “ens33” successfully disconnected.

Проверка статуса:

nmcli dev status

ens33 отмечен как disconnected

Подключить интерфейс обратно:

sudo nmcli dev connect ens33

Вы увидите подтверждение активации и UUID профиля подключения.

Профили подключения (connection)

Профили (connection profiles) — это сохранённые конфигурации интерфейсов. Их можно просмотреть:

nmcli connection show

Первая колонка — имя профиля (не имя устройства), вторая — UUID, последняя — имя привязанного устройства.

Файлы профилей хранятся в /etc/sysconfig/network-scripts/ (в системах на базе RHEL/CentOS) и называются ifcfg-<имя_профиля>.

Файлы сетевых скриптов ifcfg

Создание профиля с DHCP

В примере у меня есть два физ. интерфейса ens33 и ens37. Создадим профиль с DHCP для ens37:

sudo nmcli con add type ethernet con-name HomeDHCP ifname ens37

HomeDHCP — имя профиля, ens37 — интерфейс.

Профиль создастся, но пока не будет активирован на интерфейсе:

sudo nmcli con up HomeDHCP

Учтите, что имя профиля чувствительно к регистру.

После активации профиль прикрепляется к ens37.

nmcli con show HomeDHCP

Проверяйте соответствующий файл ifcfg-HomeDHCP в /etc/sysconfig/network-scripts/.

Содержимое ifcfg-HomeDHCP

Остановить (деактивировать) профиль:

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

Профиль со статическим IP

Активируем профиль:

sudo nmcli con up HomeStatic

Посмотреть параметры интерфейса:

nmcli dev show ens33

Вывод 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

Просмотр настроек HomeStatic

Добавить дополнительный DNS таким образом:

sudo nmcli c mod HomeStatic +ipv4.dns "192.168.0.1"

Добавление DNS адреса

Удалить DNS адрес:

sudo nmcli c mod HomeStatic -ipv4.dns "192.168.0.1"

Практическая методология для быстрых задач

Мини‑методология для базовой настройки сети на сервере:

  1. Проверить физические интерфейсы: nmcli device status
  2. Выбрать нужный интерфейс и посмотреть параметры: nmcli dev show
  3. Создать профиль: nmcli con add …
  4. Активировать профиль: nmcli con up
  5. При необходимости добавить DNS и маршруты: nmcli con modify …
  6. Проверить доступность: 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).

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро