Сетевые интерфейсы · 5 min read · Sep 29, 2025
Как переименовать сетевые интерфейсы в eth0 на CentOS

В этой статье мы узнаем о наименовании интерфейсов в Linux. Она написана для дистрибутивов Linux на базе RHEL, таких как AlmaLinux, CentOS и Rocky Linux. Вы узнаете, как сетевой интерфейс в Linux называется eth(X), ens(X), eno(X) и т.д.
Во-первых, мы узнаем о концепции наименования сетевого интерфейса в системе Linux, включая классическую схему наименования, biosdevname и политику udev системы.
1. Традиционная схема наименования
Традиционная схема наименования — это стандартная традиционная схема наименования интерфейсов, предоставляемая драйвером ядра Linux. Как мы знаем, традиционная схема наименования выглядит как eth(n) для Ethernet-устройства, wlan(n) для устройства беспроводной локальной сети и usb(n) для usbnet.
В традиционной схеме наименования все сетевое оборудование обрабатывается одинаково драйвером ядра. Это достаточно хорошо, чтобы сообщить нам о типе подключения, но не очень информативно о самом оборудовании, к которому вы привыкли.
2. Biosdevname
Biosdevname — это проект, который был начат компанией Dell для обеспечения последовательного наименования сетевых устройств. Biosdevname — это утилита udev, которая предоставляет последовательный механизм наименования для сетевых устройств на основе физического расположения оборудования, как это предложено системным BIOS.
Ниже представлена стандартная политика схемы наименования, предоставляемая biosdevname:
- Для встроенных сетевых устройств будет использоваться имя “ em<порт>[_<виртуальный экземпляр>] “
- Для дополнительных устройств NIC будет использоваться имя “ p<слот>p<порт>[_<виртуальный экземпляр>] “
Более подробная информация:
- em = встроенные сетевые устройства
- <слот> = соответствующий PCI-слот
- <порт> = номер порта NIC (если есть многопортовые NIC)
- <виртуальный экземпляр> = индекс экземпляра SRIOV и/или NPAR
- ‘ p ‘ на дополнительном NIC обозначает соответственно pci слот и порт
3. Правила Systemd Udev
В настоящее время некоторые популярные дистрибутивы Linux, такие как Ubuntu, CentOS и Debian, используют Systemd в качестве менеджера системы и служб. И с версии 197 в systemd были добавлены нативные политики и схемы наименования для сетевых интерфейсов, аналогичные biosdevname.
Ниже приведены 5 политик наименования сетевых интерфейсов для системы на базе Systemd:
- Для встроенных сетевых устройств имя будет таким, как ‘eno1’, ‘eno2’ и т.д.
- Для интеграции номеров индексов слотов PCI Express, предоставленных прошивкой/BIOS, имя будет ‘ens1’. Это будет применено, если первая политика не сработает. В основном используется виртуальными машинами, такими как VMWare и KVM.
- Имена, учитывающие физическое расположение разъема оборудования (пример: enp2s0), применяются, если это возможно, в противном случае возвращаются к схеме 5 во всех других случаях.
- Имена, учитывающие MAC-адрес интерфейса (пример: enx78e7d1ea46da), по умолчанию не используются, но доступны, если пользователь выберет.
- Традиционная непредсказуемая схема наименования ядра используется, если все другие методы не сработают (пример: eth0).
Теперь мы узнали о традиционной схеме наименования интерфейсов в Linux.
Далее мы покажем вам, как изменить имена сетевых интерфейсов на традиционные ‘eth0’, ‘eth1’ и т.д. Существует два способа сделать это: изменить имена сетевых интерфейсов через ‘biosdevname’ и через ‘правила systemd udev’.
1. Изменение имени интерфейса на eth0, отключив Biosdevname
Как мы знаем, biosdevname — это утилита udev, созданная компанией Dell для наименования сетевых интерфейсов по предложению системного BIOS. И по умолчанию пакет biosdevname установлен в системе Linux.
Чтобы отключить biosdevname в системе Linux, вам нужно отключить его на уровне загрузки, отредактировав конфигурацию grub в вашей системе.
Прежде чем продолжить, давайте проверим текущие интерфейсы в системе, используя следующую команду.
ifconfig -a
ip addrА вот и результат.

В результате у нас есть два сетевых интерфейса ‘ens3’ и ‘ens8’.
Далее мы переименуем оба интерфейса в ‘eth0’ и ‘eth1’ на нашей системе CentOS 8, отредактировав конфигурацию grub и сетевую конфигурацию для каждого интерфейса.
- Настройка Grub2
Перейдите в директорию ‘/etc/sysconfig/‘ и отредактируйте конфигурацию ‘grub’ с помощью редактора vim.
cd /etc/sysconfig/
vim grubВ конфигурации ‘GRUB_CMDLINE_LINUX’ добавьте следующую конфигурацию для отключения biosdevname и параметра ядра net.ifnames.
net.ifnames=0 biosdevname=0Сохраните и закройте.

После этого создайте новую конфигурацию grub, используя команду ‘grub2-mkconfig’, как показано ниже.
sudo grub2-mkconfig -o /boot/grub2/grub.cfgИ вы получите результат, как показано ниже.

- Редактирование сетевого скрипта
Далее нам нужно переименовать оба сетевых интерфейса в конфигурации, расположенной в директории ‘/etc/sysconfig/network-scripts/‘.
Перейдите в ‘/etc/sysconfig/network-scripts/‘.
cd /etc/sysconfig/network-scripts/Переименуйте оба имени интерфейса в ‘ifcfg-ethX’.
mv ifcfg-enp0s3 ifcfg-eth0
mv ifcfg-enp0s8 ifcfg-eth1После этого измените оба интерфейса на ‘ethX’ в обоих файлах, используя команду sed ниже.
sed -i -e 's/enp0s3/eth0/g' ifcfg-eth0
sed -i -e 's/enp0s8/eth1/g' ifcfg-eth1Теперь перезагрузите систему CentOS 8.
sudo reboot
- Тестирование
После повторного входа в систему проверьте доступные сетевые интерфейсы, используя следующую команду.
ifconfig
ip addrИ вы увидите результат, как показано ниже.

Оба сетевых интерфейса на системе CentOS 8 были изменены и теперь используют традиционную схему наименования. Сетевые интерфейсы изменились за счет отключения ‘biosdevname’ во время загрузки системы.
- Опционально
Если вы хотите проверить детали изменений в загрузке системы, вы можете выполнить следующую команду.
dmesg | grep -i ethВы увидите, что имя интерфейса по умолчанию изменилось на традиционное имя ‘ethX’, измененное через пользовательские правила udev.

2. Изменение имени интерфейса на eth0 с использованием правил Udev
Другой способ изменить имя сетевого интерфейса на традиционное наименование, такое как eth0 и т.д., — это создание пользовательских правил udev. И с помощью пользовательских правил udev сетевые интерфейсы будут изменены после системы.
- Создание пользовательских правил Udev
Теперь перейдите в директорию ‘/etc/udev/rules.d/‘ и создайте пользовательское правило с именем ‘70-persistent-net.rules’ с помощью редактора vim.
cd /etc/udev/rules.d/
vim 70-persistent-net.rulesИзмените MAC-адрес и стандартные интерфейсы ‘ens3’ и ‘ens8’ на свои собственные и вставьте их.
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:6c:a8:e6", ATTR{type}=="1", KERNEL=="ens3", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:97:cf:33", ATTR{type}=="1", KERNEL=="ens8", NAME="eth1"Сохраните и закройте.

- Редактирование сетевого скрипта
Далее перейдите в директорию ‘/etc/sysconfig/network-scripts’.
cd /etc/sysconfig/network-scripts/Переименуйте оба имени интерфейса в ‘ifcfg-ethX’.
mv ifcfg-enp0s3 ifcfg-eth0
mv ifcfg-enp0s8 ifcfg-eth1После этого измените оба интерфейса на ‘ethX’ в обоих файлах, используя команду sed ниже.
sed -i -e 's/enp0s3/eth0/g' ifcfg-eth0
sed -i -e 's/enp0s8/eth1/g' ifcfg-eth1Теперь перезагрузите сервер CentOS 8.
sudo reboot
- Тестирование
После повторного входа в систему проверьте все доступные сетевые интерфейсы, используя следующие команды.
ifconfig
ip addrИ вы получите новый интерфейс ‘ethX’, который был назначен.

- Опционально
Если вы хотите проверить детали изменений в загрузке системы, вы можете выполнить следующую команду.
dmesg | grep -i ethВы увидите, что имя ‘ensX’ изменилось на традиционное имя ‘ethX’, измененное через пользовательские правила udev.

Ссылки
Get new posts in your inbox
No spam. Unsubscribe anytime.