3.0 KiB
3.0 KiB
Переименовать сетевой интерфейс в Linux
Выполнялось на Debian 12
Способ 1 - SystemD
Порядок действий:
- Погасить интерфейс
- Создать правило именования
- Изменить сетевые настройки - указать новое имя
- Выполнить перезагрузку -
systemctl restart systemd-udev-trigger.service
- Включить интерфейс
Имеем:
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"
После перезагрузки будет применено новое имя.