Как я могу показать старые имена eth0, а также переименовать сетевые интерфейсы в Debian 9 Stretch?

12

Я хотел бы сделать 2 вещи:

1) Верните интерфейсы к старому классическому имени: eth0 вместо ens33.

2) Переименуйте интерфейсы так, как я хочу, чтобы, например, я мог назвать интерфейс eth0 как wan0 или назначить eth1, eth2 и т. Д. По MAC-адресу, который я хочу.

user3450548
источник

Ответы:

21

Предполагая, что вы только что установили Debian 9 Stretch.

1) Для возврата старых имен интерфейсов:

nano /etc/default/grub

отредактируйте строку GRUB_CMDLINE_LINUX=""дляGRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

затем запустите grub-mkconfig для применения изменений внутри загрузчика

grub-mkconfig -o /boot/grub/grub.cfg

После этого вам нужна перезагрузка .


2) Для переименования интерфейсов используйте:

  • Просто для временного изменения взгляните на ответ @xhienne.

  • Для постоянной модификации:

Начните с создания / редактирования файла /etc/udev/rules.d/70-persistent-net.rules .

nano /etc/udev/rules.d/70-persistent-net.rules

И вставьте внутренние строки, как:

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

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

Если вы хотите присвоить, например, имя вроде wan0 для eth0, вы можете использовать приведенный ниже пример:

# interface with MAC address "00:0c:30:50:48:a1" will be assigned "eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:30:50:48:a1", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="wan0"

После следующей перезагрузки или перезапуска службы сети вы должны увидеть внесенные изменения.


ДОПОЛНИТЕЛЬНО: Помните, что после всех этих изменений вы должны отредактировать файл / etc / network / interfaces, заменив старые имена интерфейсов новыми!


ДОПОЛНИТЕЛЬНО: Если вы хотите знать, какой MAC-адрес есть у ваших интерфейсов, просто выполните

ip addr show

и посмотрите по ссылке / разделу.

user3450548
источник
Где можно найти эту информацию в официальной документации по Linux?
vfclists
5

На вопрос 1) см . Ответ пользователя 3450548 . На вопрос 2) вы можете дать любое имя интерфейсу, с которым хотите iproute2:

ip link set ens33 down           # Else you will get "Device or resource busy"
ip link set ens33 name eth0
xhienne
источник
1
О, хорошо, но это не просто временное изменение до следующей перезагрузки?
user3450548
Да. Конечно, вы можете добавить это в сценарий запуска, но ваш ответ будет лучше, если вы хотите что-то постоянное. Я не заметил, что вы отвечаете на свой собственный вопрос (вы можете принять его тогда), и добавил это, если вы (или кто-либо еще) захотите временную смену имени в целях тестирования.
xhienne
Спасибо, это хороший аддон, я также
укажу
0

Создать ниже файл, если не там

nano /etc/udev/rules.d/70-persistent-net.rules

добавить строку ниже

# interface with MAC address "00:0c:30:50:48:a1" will be assigned "eth0"
# KERNEL=="enp3s0" is debians current interface name
# NAME="eth0" is a new ethernet interface name
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:30:50:48:a1", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="enp3s0", NAME="eth0"
Люк
источник
0

Я нашел очень простой способ, изменив только /etc/network/interfaces:

rename enp3s0=wan0

потом

service networking restart

перезапустить сетевой сервис.

Ау Берн Робертсен
источник