Jak mogę wyświetlić stare nazwy eth0, a także zmienić nazwy interfejsów sieciowych w debian 9 stretch?

12

Chciałbym zrobić 2 rzeczy:

1) Przywróć interfejsy do starej klasycznej nazwy: eth0 zamiast ens33.

2) Zmień nazwy interfejsów tak, jak chcę, aby na przykład móc wywołać interfejs eth0 jako wan0 lub przypisać eth1, eth2 itd. Do adresu MAC, który chcę.

użytkownik3450548
źródło

Odpowiedzi:

21

Zakładając, że właśnie zainstalowałeś swój debian 9 stretch.

1) Aby przywrócić stare nazwy interfejsów:

nano /etc/default/grub

edytuj linię GRUB_CMDLINE_LINUX=""doGRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

następnie uruchom grub-mkconfig, aby zastosować zmiany w bootloaderze

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

Następnie musisz ponownie uruchomić komputer .


2) Do zmiany nazw interfejsów użyj:

  • Dla tymczasowej modyfikacji spójrz na odpowiedź @xhienne.

  • W celu trwałej modyfikacji:

Zacznij od utworzenia / edycji pliku /etc/udev/rules.d/70-persistent-net.rules .

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

I wstaw linie wewnętrzne, takie jak:

# 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"

Jeśli chcesz przypisać na przykład nazwę taką jak wan0 do eth0, możesz użyć podanego mojego przykładu:

# 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"

Po następnym ponownym uruchomieniu lub użyciu sieci serwisowej powinieneś zobaczyć zmiany zastosowane.


EXTRA: Pamiętaj, że po tych wszystkich modyfikacjach musisz edytować plik / etc / network / interfaces , zastępując stare nazwy interfejsów nowymi!


DODATKOWE: Jeśli chcesz wiedzieć, jaki adres MAC mają twoje interfejsy, po prostu zrób

ip addr show

i zajrzyj pod link / sekcję.

użytkownik3450548
źródło
Gdzie można znaleźć te informacje w oficjalnej dokumentacji systemu Linux?
vfclists
5

W przypadku pytania 1) patrz odpowiedź user3450548 . W przypadku pytania 2) możesz podać dowolną nazwę interfejsu iproute2:

ip link set ens33 down           # Else you will get "Device or resource busy"
ip link set ens33 name eth0
Xhienne
źródło
1
Och, fajnie, ale to nie jest tylko tymczasowa zmiana do następnego uruchomienia?
user3450548,
Tak. Oczywiście możesz to dodać w skrypcie startowym, ale Twoja odpowiedź jest lepsza, jeśli chcesz czegoś trwałego. Nie zauważyłem, że odpowiadasz na swoje pytanie (wtedy możesz je zaakceptować) i dodałem je, jeśli ty (lub ktokolwiek inny) chciałbyś tymczasowo zmienić nazwę dla celów testowych.
xhienne
Dzięki, to miły dodatek,
wskażę
0

Utwórz poniżej pliku, jeśli go nie ma

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

dodaj poniżej linii

# 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"
Łukasz
źródło
0

Znalazłem bardzo łatwy sposób, zmieniając tylko /etc/network/interfaces:

rename enp3s0=wan0

Następnie

service networking restart

aby ponownie uruchomić usługę sieciową.

Owe Bernt Robertsen
źródło