notes/rename_network_int.md

3.0 KiB
Raw Blame History

Переименовать сетевой интерфейс в Linux

Выполнялось на Debian 12

Способ 1 - SystemD

Порядок действий:

  1. Погасить интерфейс
  2. Создать правило именования
  3. Изменить сетевые настройки - указать новое имя
  4. Выполнить перезагрузку - systemctl restart systemd-udev-trigger.service
  5. Включить интерфейс

Имеем:

root@vm-qw-74:~# ip a sh ens18
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether bc:24:11:00:1b:aa brd ff:ff:ff:ff:ff:ff
    altname enp0s18
    inet 193.3.184.249/24 brd 193.3.184.255 scope global ens18
       valid_lft forever preferred_lft forever
    inet6 fe80::be24:11ff:fe00:1baa/64 scope link 
       valid_lft forever preferred_lft forever
root@vm-qw-74:~# 
root@vm-qw-74:~# ip a sh ens19
3: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether bc:24:11:1d:fa:fe brd ff:ff:ff:ff:ff:ff
    altname enp0s19
    inet 10.66.11.80/20 brd 10.66.15.255 scope global ens19
       valid_lft forever preferred_lft forever
    inet6 fe80::be24:11ff:fe1d:fafe/64 scope link 
       valid_lft forever preferred_lft forever
root@vm-qw-74:~# cat /etc/network/interfaces
...
allow-hotplug ens18
iface ens18 inet static
    address 193.3.184.249
    gateway 193.3.184.1


allow-hotplug ens19
iface ens19 inet static
    address 10.66.11.80/20

Необходимо интерфейс ens18 переименовать в wan1

Т.к. для выполнения работ интерфейс необходимо отключать, при удалённом подключении все действия нужно выполнить одной командой в конвеере

Команда - ip a sh ens18 | grep link/ether | awk '{print $2}' покажет mac адрес для ens18

old_name=ens18
new_name=wan1
mac=$(ip a sh $old_name | grep link/ether | awk '{print $2}')

ifdown $old_name
sed  -i "s/$old_name/$new_name/" /etc/network/interfaces

cat << EOF >  /etc/systemd/network/10-$new_name.link
[Match]
MACAddress=$mac
[Link]
Name=$new_name
EOF

systemctl restart systemd-udev-trigger.service
sleep 0.5
ifup $new_name

для обратного переименования, предварительно нужно удалить файл - /etc/systemd/network/10-$new_name.link

Способ 2 - Правило udev

Имеем

  • старое имя - eth0
  • mac - 02:42:ac:11:00:02
  • новое имя - neweth0
sudo nano /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="02:42:ac:11:00:02", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="neweth0"

После перезагрузки будет применено новое имя.