Диагностика падения 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 |