Изменение имени сетевого интерфейса Centos 7

В CentOS7 имя сетевого интерфейса имеет вид “enpXsX” вместо привычного “ethX”.  Сначала немного теории о том, почему так происходит, а затем как это изменить.

Почему так происходит

Все дело в том, что классическая схема именования сетевых интерфейсов присваивает им имена  «eth0», «eth1» и т.д. по порядку, однако данные имена жестко не привязываются к интерфейсу. То есть, если у Вас несколько сетевых интерфейсов, после перезагрузки системы интерфейс который раньше назывался «eth0» может получить название «eth1». Это влечет за собой ряд серьезных проблем, например если у Вас настроен  firewall, то изменение названия интерфейса приведёт к тому, что он перестанет корректно работать.

Боролись с эти по разному, привязывали к MAC-адресу устройства, пытались привязывать к слоту на материнской плате используя «biosdevname», использовали указанные пользователем имена (например: «internet0», «dmz0», т.п.), но у каждой схемы есть свои недостатки.

В связи с эти в Red Hat Enterprise Linux 7 и соответственно в Centos 7 решено было назначать имена сетевого интерфейса на основе иерархии различных схем именования. То есть, по умолчанию systemd будет поочередно применять схемы именования остановившись на первой доступной и применимой.

Преимущество в том, что имена присваиваются в автоматическом режиме, полностью предсказуемы и они остаются неизменными, даже если аппаратные средства добавлены, изменены или удалены. Недостатком является то, что такие имена труднее читать (например: enp5s0), чем традиционно используемые eth0 или wlan0.

Подробнее можно прочесть в официальном руководстве Red Hat здесь.


Решение

Однако не всем подходит выданное системой название. Для того, чтобы изменить имя интерфейса на стандартное “ethX”, необходимо отредактировать grub файл:

Ищем строку “GRUB_CMDLINE_LINUX” и добавляем следующее: “net.ifnames=0 biosdevname=0»

Строка будет иметь вид вроде этого:

Обновим конфигурацию загрузчика grub при помощи команды grub2-mkconfig :

Переименуем файл настройки сетевого интерфейса:

Заменим в самом файле имя интерфейса с NAME=enp0s1 на NAME=eth0:

Перезагружаем систему.

Статью с картинками, но на английском можно посмотреть здесь.


2 комментария к “Изменение имени сетевого интерфейса Centos 7

  1. Только вот еще в указанном файле требуется еще поле «device» назвать аналогично.

Добавить комментарий для Alex Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *