Konfigurieren Sie die Netzwerkkarte, ohne ihren Namen zu kennen

Konfigurieren Sie die Netzwerkkarte, ohne ihren Namen zu kennen

Ich habe einen heimischen Headless-Server, der von einem entfernbaren USB-Stick bootet (und das Root-Dateisystem darin hat). Ich installiere ihn von meinem Laptop aus (nach diesemschöne Checkliste) und bearbeiten Sie die Konfigurationsdateien nach Bedarf. Idealerweise möchte ich das System vollständig konfigurieren können, während der USB-Stick an meinen Laptop angeschlossen ist, sodass er, sobald ich ihn an den Server anschließe, direkt auf Mehrbenutzerebene bootet, mit aktivem Netzwerk und laufendem SSH-Daemon.Meine gewünschte Netzwerkkonfiguration ist sehr einfach: Sie verfügt über eine einzelne integrierte MOBO-Netzwerkkarte, die ich statisch konfigurieren möchte.

Das Hauptproblem, das ich festgestellt habe, ist, dass ich nicht (zuverlässig) weiß, welcher Schnittstellenname meiner Netzwerkkarte zugewiesen wird. Bis jetzt hat die blinde Verwendung von eth0in /etc/network/interfacesfunktioniert, aber bei der letzten Neuinstallation wurde auf dieVorhersagbare NetzwerkschnittstellennamenSchema, und ich musste Monitor und Tastatur mitschleppen, um mich lokal anzumelden und Probleme am System zu beheben.

Wie kann ich mir solche Schmerzen in Zukunft ersparen?

Antwort1

Ich denke, die einfachste und praktischste Lösung besteht darin, zum klassischen Verhalten zurückzukehren.

  1. Fügen Sie in der Bootloader-Konfiguration des USB-Sticks (also beispielsweise in der Grub2-Konfiguration) den Parameter net.ifnames=0zur Kernel-Befehlszeile hinzu.
  2. Weiter verwenden eth0in /etc/network/interfaces.

Angesichts der von Ihnen beschriebenen Situation und der Betonung, die Sie auf Einfachheit gelegt haben, scheint dies angemessen. Beachten Sie jedoch, dass es ifupdownmöglicherweise veraltet ist und /etc/network/interfacesin Zukunft nicht mehr funktioniert, wenn Sie mit einem Update/Upgrade zu voreilig sind.

Antwort2

Wenn Sie modernistisch sind, können Sie systemd-networkdanstelle der üblichen statischen Konfigurationsmethode auf die Verwendung umsteigen. Siehe man systemd.network; die Grundidee besteht darin, zu entfernen /etc/network/interfacesund stattdessen zu erstellen /etc/systemd/network/static.network, wie

[Network]
Address=1.2.3.4/26
Gateway=1.2.3.3

Vergessen Sie das systemctl enable systemd-networkdauch nicht.

Antwort3

Das vorhersehbare Benennungsschema für Netzwerkschnittstellen wurde entwickelt, um genau dieses Problem zu lösen, nämlich unterschiedliche Namen für eine Schnittstelle zu verschiedenen Zeiten zu erhalten. Das bedeutet, dass mit dieser Änderung Ihr Problem behoben sein sollte (bis zur nächsten Änderung der Schnittstellenbenennung in systemd

verwandte Informationen