Linux: не работает сеть после восстановления (dd / snapshot / миграция)
Описание
После восстановления системы (через dd, snapshot или перенос на другую ВМ) сеть может не работать.
Типичные симптомы:
- отсутствует IP-адрес;
- интерфейс не поднимается;
- нет доступа по SSH;
- интерфейс отсутствует в конфигурации;
- система видит интерфейс, но не применяет настройки.
Контекст
Типичные сценарии:
- перенос ВМ между гипервизорами (ESXi → KVM / Proxmox);
- клонирование ВМ;
- восстановление из поблочного бэкапа (
dd); - изменение типа сетевого адаптера (e1000 → virtio);
- изменение MAC-адреса.
Основная причина
Linux использует predictable network interface names
(предсказуемые имена интерфейсов).
Имя интерфейса зависит от:
- PCI-адреса;
- типа адаптера;
- порядка инициализации устройств.
После миграции:
- было:
ens160 - стало:
ens192
Конфигурация остаётся старой → интерфейс не поднимается.
⚠️ Риски
- потеря удалённого доступа;
- неправильная конфигурация может полностью изолировать сервер;
- особенно критично для production-систем.
Диагностика
1. Проверка интерфейсов
ip linkВажно:
- есть ли интерфейс вообще;
- как он называется;
- состояние (
UP/DOWN).
2. Проверка IP-адресов
ip addr3. Проверка драйвера
lspci | grep -i ethernetlsmod | grep -i virtioЕсли драйвер не загружен — интерфейс может не появиться.
4. Проверка конфигурации
Ubuntu / Debian:
ls /etc/netplan/CentOS / RHEL:
ls /etc/sysconfig/network-scripts/5. Проверка MAC-адреса
ip linkПроверить:
- текущий MAC-адрес интерфейса;
- совпадает ли он с конфигурацией.
Также можно посмотреть:
cat /sys/class/net/ens192/addressЕсли MAC изменился после миграции — конфигурация может не применяться.
Решение
1. Попытка пересборки initramfs
Актуально при смене драйверов или гипервизора:
update-initramfs -u
reboot2. Проверка имени интерфейса
ip linkЗапомнить текущее имя (например ens192).
3. Исправление netplan (Ubuntu / Debian)
vi /etc/netplan/50-cloud-init.yamlБыло:
ethernets:
ens160:
dhcp4: trueСтало:
ethernets:
ens192:
dhcp4: trueПрименение:
netplan apply4. Отключение привязки к MAC (если есть)
Иногда конфигурация привязана к MAC:
match:
macaddress: xx:xx:xx:xx:xx:xxПосле миграции MAC меняется → интерфейс не поднимается.
Решение:
- удалить блок
match - или обновить MAC
Для CentOS / RHEL:
В конфигурации может быть жёсткая привязка к MAC:
HWADDR=xx:xx:xx:xx:xx:xxПосле миграции MAC меняется → интерфейс не поднимается.
Решение:
- удалить параметр
HWADDR; - либо обновить его на актуальный MAC.
5. CentOS / RHEL (network-scripts)
cd /etc/sysconfig/network-scripts/Переименование:
mv ifcfg-ens160 ifcfg-ens192Правка:
vi ifcfg-ens192Важно:
DEVICE=ens192
NAME=ens192
ONBOOT=yes6. Очистка старых правил udev
Иногда остаются старые привязки:
rm -f /etc/udev/rules.d/70-persistent-net.rulesПосле этого:
reboot7. Перезапуск сети
Ubuntu:
netplan applyCentOS:
systemctl restart networkЧастые кейсы
1. Интерфейс есть, но без IP
Причина:
- неправильный netplan / ifcfg
Решение:
- проверить имя интерфейса
- проверить DHCP / static настройки
2. Интерфейс отсутствует
Причина:
- отсутствует драйвер
- не пересобран initramfs
Решение:
update-initramfs- проверить
lsmod
3. Интерфейс DOWN
ip link set ens192 up4. DHCP не работает
Проверка:
dhclient -v ens1925. После клонирования одинаковые MAC
- конфликт в сети
- DHCP не выдаёт адрес
Решение:
- изменить MAC в гипервизоре
6. Интерфейс не поднимается из-за MAC
Причина:
- MAC-адрес изменился после клонирования или миграции;
- конфигурация привязана к старому MAC (
matchилиHWADDR).
Решение:
- проверить текущий MAC (
ip link); - удалить привязку или обновить MAC в конфигурации;
- применить настройки сети.
Ограничения
- не решает проблемы на уровне гипервизора;
- не исправляет ошибки сетевой инфраструктуры (VLAN, firewall);
- требует консольного доступа.
Когда использовать
- после восстановления через
dd; - после миграции ВМ;
- при смене гипервизора;
- при отсутствии сети после загрузки.