#Что означает проблема и кому подходит инструкция
После обновления Ubuntu сетевой интерфейс может поменять имя: например, enp3s0 превратился в enp4s0. Это возможно при изменении схемы именования, топологии PCI или настроек udev; особенно опасно для удалённого сервера, где старое имя записано в Netplan.
#Возможные причины и отличительные признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Изменилась привязка PCIПредсказуемое имя интерфейса связано с расположением устройства. | MAC тот же, а имя другое. | Проверить настройки соединения и сетевого описания. |
| Файл Netplan всё ещё использует прежний идентификаторКонфигурация не назначает адрес новому устройству. | ip link показывает новое имя, а /etc/netplan/*.yaml — старое. | Исправить точное соответствие после резервной копии. |
| Имя закреплено через udevСтарое пользовательское правило больше не совпадает. | Есть собственные файлы .link или правила udev. | Проверить правило и условия его применения. |
#Диагностика и пошаговое устранение
- 1. Обеспечьте запасную консольНе меняйте сеть удалённо без доступа через панель провайдера, IPMI, монитор или консоль ВМ. Сначала запишите внешний IP и настройки маршрута. Во время
netplan applySSH-соединение может разорваться; Ubuntu Server позволяет проверить часть изменений черезnetplan tryс автоматическим возвратом по тайм-ауту, однако это не заменяет резервный доступ. - Команды диагностические; новые имена интерфейсов смотрите в первом столбцеLinux · Терминал (Bash)КомандаКоманды диагностические; новые имена интерфейсов смотрите в первом столбце.
ip -br linkip -br addrip route
- 2. Установите соответствие устройства по MACПосмотрите
ip -br linkи данные из/sys/class/net/ИМЯ/address. MAC-адрес помогает отличить тот же физический адаптер от другого. Не переписывайте конфигурацию под адаптер docker0, veth или loopback. - Используйте текущее имя интерфейса, определённое по выводуLinux · Терминал (Bash)КомандаИспользуйте текущее имя интерфейса, определённое по выводу.
ip -br linkls -l /sys/class/net/
- 3. Узнайте, кто управляет интерфейсомВ Ubuntu может использоваться Netplan с backend systemd-networkd или NetworkManager. Прочитайте конфигурацию и
networkctl list/nmcli device statusпри наличии. Если облачная ВМ генерирует YAML через cloud-init, ручная правка может быть переписана.Linux · Терминал (Bash)КомандаНужен sudoВторые две команды могут быть недоступны при другом сетевом менеджере.sudo netplan getnetworkctl listnmcli device status
- 4. Найдите ссылку на старое имяПрочитайте файлы
/etc/netplan/*.yamlи любые собственные правила.link. Не переименовывайте сети через грубую подстановку строки по всей системе; адрес, маршрут и VLAN должны остаться привязаны к правильной карте. Снимите копию только тех файлов, которые собираетесь редактировать. - Слово старое_имя замените реальным; в выводе могут быть чувствительные сетевые параметрыLinux · Терминал (Bash)КомандаНужен sudoСлово старое_имя замените реальным; в выводе могут быть чувствительные сетевые параметры.
sudo grep -R -n "старое_имя" /etc/netplan /etc/systemd/network 2>/dev/nullsudo ls -l /etc/netplan/
- 5. Проверьте синтаксис, не применяя сеть сразуПосле адресной правки YAML сначала выполните
sudo netplan generate; он проверяет создание конфигураций, но сам по себе не гарантирует связь. При возможности используйтеsudo netplan try, подтвердив работоспособность в лимит времени, затем сохраняйте настройку. На сервере без консоли не запускайте проверку, которая может отрезать сеть.Linux · Терминал (Bash)С осторожностьюНужен sudoГенерирует конфигурацию, но не применяет её к интерфейсу.sudo netplan generateКоманда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.
- 6. Проверьте реальную сеть после загрузкиКогда безопасно проверить, сравните активный интерфейс, присвоенный IP, маршрут и разрешение имён, затем повторите после перезагрузки. Если имя вновь сменилось, проверьте PCI/BIOS/виртуальные устройства и созданные правила udev; ручное закрепление по MAC требует отдельного проекта, особенно при смене сетевых карт.
- Проверка адреса, маршрута и DNS; без автоматического переименованияLinux · Терминал (Bash)КомандаПроверка адреса, маршрута и DNS; без автоматического переименования.
ip -br addrip routegetent ahostsv4 example.com
#Как убедиться, что неисправность устранена
Работа завершена, если на новом имени устойчиво поднимается правильный интерфейс, адрес и маршрут, а после перезагрузки восстановлен внешний доступ. Одного отображения link UP недостаточно.
#Если результат не получен
Не повторяйте опасные действия наугад. Сохраните точную формулировку ошибки, вывод диагностики без секретов, версию Ubuntu и данные о затронутом компоненте. Верните лишь собственные изменения из резервной копии; если затронута загрузка, диски или рабочий сервер, воспользуйтесь консолью восстановления либо помощью администратора.