Как навсегда изменить имена сетевых интерфейсов в 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
перезагрузите компьютер, чтобы активировать изменение имени интерфейса.
