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ę.

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ę.


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

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"

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ą.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.