Блог "Дети ОИТа"
/поиск

Диагностика падения NetworkManager

> [!INFO] Применимость > **ALT Linux 10.4–11.x** · локальная работа через CLI/TTY > Опорная версия: **ALT Linux 10.4**. > > Задача: определить причину остановки или аварийного завершения NetworkMana

[!INFO] Применимость
ALT Linux 10.4–11.x · локальная работа через CLI/TTY
Опорная версия: ALT Linux 10.4.

Задача: определить причину остановки или аварийного завершения NetworkManager, найти его журналы, конфигурацию и связанные службы, затем безопасно восстановить работу.

Оглавление

  • [[#Быстрый порядок действий|Быстрый порядок действий]]
  • [[#Проверить состояние службы|Проверить состояние службы]]
  • [[#Просмотреть журналы|Просмотреть журналы]]
  • [[#Найти конфигурацию|Найти конфигурацию]]
  • [[#Определить источник сетевых настроек|Определить источник сетевых настроек]]
  • [[#Проверить связанные службы|Проверить связанные службы]]
  • [[#Проверить unit и пакет|Проверить unit и пакет]]
  • [[#Восстановить запуск|Восстановить запуск]]
  • [[#Включить подробное журналирование|Включить подробное журналирование]]
  • [[#Проверить сеть после восстановления|Проверить сеть после восстановления]]
  • [[#Типовые причины|Типовые причины]]

Быстрый порядок действий

systemctl status NetworkManager --no-pager -l
journalctl -u NetworkManager -b -p warning --no-pager
sudo NetworkManager --print-config
systemctl list-dependencies NetworkManager
systemctl is-active dbus
systemctl is-active network
systemctl is-active systemd-networkd
sudo systemctl restart NetworkManager

Предупреждение

Не включайте NetworkManager, пока не выяснено, что интерфейс действительно должен управляться им. В ALT Linux сеть также может обслуживаться etcnet или systemd-networkd.

Проверить состояние службы

systemctl is-active NetworkManager
systemctl is-enabled NetworkManager
systemctl status NetworkManager --no-pager -l
systemctl --failed
Состояние Значение
active Демон запущен
inactive Служба остановлена
failed Запуск завершился ошибкой
activating Служба запускается или зависла при запуске
masked Запуск службы запрещён
not-found Unit или пакет отсутствует

Проверить доступность D-Bus-интерфейса NetworkManager:

nmcli general status

Если демон недоступен, обычно выводится ошибка:

Error: NetworkManager is not running

Просмотреть журналы

Текущая загрузка

Полный журнал:

journalctl -u NetworkManager -b --no-pager

Только предупреждения и ошибки:

journalctl -u NetworkManager -b -p warning --no-pager

Последние сообщения:

journalctl -u NetworkManager -b -n 100 --no-pager

Наблюдение за повторным запуском:

journalctl -fu NetworkManager

Предыдущая загрузка

journalctl -u NetworkManager -b -1 --no-pager

Использовать, если после перезагрузки служба уже восстановилась, но требуется найти причину прошлого падения.

Журнал ядра и драйвера сетевой карты

journalctl -k -b --no-pager \
  | grep -Ei 'net|ether|link|firmware|timeout|reset|rename|enp|eth|wlan'

Проверить конкретный интерфейс:

journalctl -k -b --no-pager | grep -i '<имя_интерфейса>'

Аварийное завершение процесса

Если доступен coredumpctl:

coredumpctl list NetworkManager
coredumpctl info NetworkManager

Отсутствие записей означает, что дамп не был создан или журналирование дампов отключено.

Связанные журналы

D-Bus:

journalctl -u dbus -b --no-pager

udev и обнаружение оборудования:

journalctl -u systemd-udevd -b --no-pager

Wi-Fi:

journalctl -u wpa_supplicant -b --no-pager

DNS через systemd-resolved, если он используется:

journalctl -u systemd-resolved -b --no-pager

Найти конфигурацию

Основные каталоги NetworkManager

Путь Назначение
/etc/NetworkManager/NetworkManager.conf Основная локальная конфигурация
/etc/NetworkManager/conf.d/*.conf Локальные дополнительные параметры
/usr/lib/NetworkManager/conf.d/*.conf Параметры, установленные пакетами
/run/NetworkManager/conf.d/*.conf Временная конфигурация текущей загрузки
/etc/NetworkManager/system-connections/ Постоянные native-профили соединений
/run/NetworkManager/system-connections/ Временные профили
/usr/lib/NetworkManager/system-connections/ Профили, поставляемые пакетами
/etc/NetworkManager/dispatcher.d/ Локальные скрипты событий
/usr/lib/NetworkManager/dispatcher.d/ Системные скрипты событий
/var/lib/NetworkManager/ Постоянное внутреннее состояние
/run/NetworkManager/ Временное состояние и runtime-файлы
/etc/systemd/system/NetworkManager.service.d/ Локальные переопределения systemd-unit

Предупреждение

Файлы в /usr/lib/NetworkManager/ вручную не изменять. Локальные параметры размещать в /etc/NetworkManager/.

Вывести эффективную конфигурацию:

sudo NetworkManager --print-config

Команда читает конфигурационные файлы с диска и не запускает демон.

Найти локальные изменения:

sudo find /etc/NetworkManager \
  -type f \
  -printf '%TY-%Tm-%Td %TH:%TM %m %u:%g %p\n' \
  | sort

Проверить права native-профилей:

sudo find /etc/NetworkManager/system-connections \
  -maxdepth 1 \
  -type f \
  -printf '%m %u:%g %p\n'

Обычные требования:

владелец: root
группа:   root
права:    600

Исправлять права только после проверки файлов:

sudo chown root:root /etc/NetworkManager/system-connections/*
sudo chmod 600 /etc/NetworkManager/system-connections/*

Перечитать профили после ручного изменения:

sudo nmcli connection reload

Команда сработает только после запуска NetworkManager.

Определить источник сетевых настроек

ALT Linux поддерживает несколько вариантов управления интерфейсом.

NetworkManager native

Профили находятся в:

/etc/NetworkManager/system-connections/

Просмотр:

sudo ls -la /etc/NetworkManager/system-connections/

NetworkManager с конфигурацией etcnet

NetworkManager запускает интерфейс, но параметры берёт из:

/etc/net/ifaces/<интерфейс>/

Проверка:

sudo find /etc/net/ifaces -maxdepth 2 -type f -print

Основные файлы интерфейса:

options
ipv4address
ipv4route
resolv.conf

Etcnet без NetworkManager

Интерфейс обслуживается службой:

network.service

Проверка:

systemctl is-active network
systemctl is-enabled network

systemd-networkd

Конфигурация находится в:

/etc/systemd/network/

Проверка:

systemctl is-active systemd-networkd
systemctl is-enabled systemd-networkd

Осторожно

Одновременное управление одним интерфейсом несколькими сетевыми подсистемами приводит к конфликтам адресов, маршрутов и состояния интерфейса.

Проверить связанные службы

Показать фактические зависимости установленного unit:

systemctl list-dependencies NetworkManager
systemctl list-dependencies --reverse NetworkManager
systemctl cat NetworkManager

Проверить основные компоненты:

systemctl is-active dbus
systemctl is-active systemd-udevd
systemctl is-active network
systemctl is-active systemd-networkd
systemctl is-active wpa_supplicant
systemctl is-active systemd-resolved
Компонент Роль
systemd Запускает и контролирует службу
dbus Системная шина управления NetworkManager
systemd-udevd Обнаружение сетевых устройств
Ядро и драйвер Создание интерфейса и работа физического устройства
network.service Управление сетью через etcnet; возможен конфликт
systemd-networkd Альтернативный менеджер сети; возможен конфликт
wpa_supplicant или iwd Аутентификация Wi-Fi
systemd-resolved DNS, только если выбран соответствующий режим
dnsmasq Локальный DNS-кэш, только если указан в конфигурации
NetworkManager dispatcher Запуск скриптов при сетевых событиях
PolicyKit Авторизация действий непривилегированных пользователей

Примечание

Неактивный NetworkManager-dispatcher сам по себе не является неисправностью: он может запускаться через D-Bus только при появлении события.

NetworkManager обычно использует встроенный DHCP-клиент. Внешние dhclient или dhcpcd требуются только при соответствующей настройке.

Проверить выбранные плагины DHCP и DNS:

sudo NetworkManager --print-config \
  | grep -Ei '^[[:space:]]*(plugins|dhcp|dns|rc-manager)='

Проверить unit и пакет

Показать unit с локальными переопределениями:

systemctl cat NetworkManager

Показать свойства запуска:

systemctl show NetworkManager \
  -p FragmentPath \
  -p DropInPaths \
  -p ExecStart \
  -p Result \
  -p ExecMainStatus \
  -p NRestarts

Определить пакет, которому принадлежит демон:

rpm -qf /usr/sbin/NetworkManager

Проверить файлы этого пакета:

PKG="$(rpm -qf /usr/sbin/NetworkManager)"
sudo rpm -V "$PKG"

Если команда ничего не вывела, проверяемые файлы пакета не изменены.

Показать установленные компоненты NetworkManager:

rpm -qa | grep -E '^NetworkManager' | sort

Восстановить запуск

1. Убедиться, что NetworkManager должен использоваться

systemctl is-active network
systemctl is-active systemd-networkd

Если активна другая сетевая подсистема, сначала определить, какой менеджер назначен проблемному интерфейсу.

2. Проверить конфигурацию

sudo NetworkManager --print-config

Если команда сообщает об ошибке, проверить последние изменённые файлы в:

/etc/NetworkManager/NetworkManager.conf
/etc/NetworkManager/conf.d/

Сначала создать копию подозрительного файла:

sudo cp -a <файл> <файл>.backup

После этого исправить либо временно убрать только подтверждённо ошибочный локальный фрагмент.

3. Сбросить состояние failed

sudo systemctl reset-failed NetworkManager

4. Запустить службу

sudo systemctl restart NetworkManager

Проверить:

systemctl status NetworkManager --no-pager -l
nmcli general status

Служба отключена

Включать автозапуск только если NetworkManager является выбранной сетевой подсистемой:

sudo systemctl enable --now NetworkManager

Служба замаскирована

Сначала выяснить причину маскировки:

systemctl is-enabled NetworkManager

Если маскировка ошибочна:

sudo systemctl unmask NetworkManager
sudo systemctl enable --now NetworkManager

Осторожно

Не перезапускайте dbus вслепую в работающей системе. Это может нарушить графическую сессию и другие системные службы. При неисправности системного D-Bus сначала собрать журналы; безопаснее выполнить контролируемую перезагрузку системы.

Включить подробное журналирование

Временно, если демон запускается

sudo nmcli general logging level TRACE domains ALL

Воспроизвести проблему и смотреть журнал:

journalctl -fu NetworkManager

Вернуть обычный уровень:

sudo nmcli general logging level INFO domains DEFAULT

Постоянно до запуска службы

Создать временный файл:

sudo tee /etc/NetworkManager/conf.d/95-logging.conf >/dev/null <<'EOF'
[logging]
level=TRACE
domains=ALL
EOF

Перезапустить службу:

sudo systemctl restart NetworkManager

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

sudo rm /etc/NetworkManager/conf.d/95-logging.conf
sudo systemctl restart NetworkManager

Предупреждение

Режим TRACE создаёт большой объём журнала. Не оставлять его включённым постоянно.

Проверить сеть после восстановления

systemctl is-active NetworkManager
nmcli general status
nmcli -f DEVICE,TYPE,STATE,CONNECTION device status
nmcli connection show --active
ip -br link
ip -br -4 address
ip -4 route
cat /etc/resolv.conf

Проверить связь:

ping -c 3 <IP-адрес_шлюза>
getent hosts <имя_доменного_ресурса>

Типовые причины

Симптом в журнале Возможная причина
Ошибка чтения .conf Повреждён файл в /etc/NetworkManager/
Профиль проигнорирован Неверные владелец или права файла
Connection refused или ошибка D-Bus Не работает системный dbus
Интерфейс отсутствует Драйвер, прошивка, udev или аппаратная проблема
Интерфейс имеет состояние unmanaged Его исключили правилами NetworkManager или передали другому менеджеру
После запуска адреса меняются повторно Интерфейсом управляют несколько сетевых подсистем
Wi-Fi не активируется wpa_supplicant, iwd, rfkill, драйвер или прошивка
Служба сразу переходит в failed Ошибка конфигурации, unit override, библиотека или повреждение пакета
Соединение зависает при активации DHCP, скрипт dispatcher, аутентификация или драйвер
NetworkManager работает, но DNS отсутствует Ошибка режима DNS, resolv.conf, systemd-resolved или dnsmasq
NetworkManager-wait-online failed Обычно следствие незавершённой активации сети, а не причина падения NetworkManager