Поиск по сайту:

Как навсегда изменить имена сетевых интерфейсов в Linux


Вопрос: я хочу изменить имя сетевого интерфейса (например, eth0) на другое в своем Linux. Как правильно переименовать сетевые интерфейсы в Linux?

В Linux управление именами устройств осуществляется системой udev. Когда ядро Linux обнаруживает новое устройство (например, сетевую карту), добавленное в систему, оно уведомляет демон udev о событии устройства. Затем демон udev будет сопоставлять различные атрибуты устройства с набором правил для идентификации устройства, присвоения ему имени и сохранения информации о нем в базе данных udev.

В случае сетевых устройств udev полагается на MAC-адреса для назначения постоянных имен устройствам. Правила именования на основе MAC-адресов хранятся в /etc/udev/rules.d/70-persistent-net.rules.

Таким образом, чтобы изменить имя сетевого устройства, вы можете отредактировать /etc/udev/rules.d/70-persistent-net.rules. Если такого файла нет, вы можете создать его самостоятельно.

В /etc/udev/rules.d/70-persistent-net.rules вы можете назначить произвольное имя устройства определенному MAC-адресу. Таким образом, сначала узнайте MAC-адрес вашего сетевого интерфейса, а затем определите имя интерфейса для этого MAC-адреса в следующем формате.


$ sudo vi /etc/udev/rules.d/70-persistent-net.rules

# interface with MAC address "00:0c:29:43:28:11" will be assigned "eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:43:28:11", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# interface with MAC address "00:0c:29:43:28:1b" will be assigned "eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:43:28:1b", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

После редактирования /etc/udev/rules.d/70-persistent-net.rules перезагрузите компьютер, чтобы активировать изменение имени интерфейса.

Статьи по данной тематике: