Dies ist in Bezug auf Linux, aber wenn jemand eine allgemeine * nix-Methode kennt, wäre das gut.
Ich habe gestern ein System mit einem eingesteckten Ethernet-Kabel gebootet. "NetworkManager" ist nicht installiert. Nach dem Start habe ich nach dem Namen der Ethernet-Schnittstelle gesucht ifconfig
, um einen DHCP-Client manuell zu starten, aber es wurde nichts anderes als angezeigt lo
.
Die Netzwerkkarte wurde über aufgelistet lspci
und der entsprechende Kerneltreiber wurde geladen. Das System verwendet normalerweise WLAN, und ich konnte mich daran erinnern, wie die Schnittstelle dafür lautete wlan0
. Als ich es versuchte ifconfig wlan0 up
, wlan0
erschien. Aber die einzigen Namen für die Ethernet-Schnittstelle, an die ich mich erinnern konnte, waren eth[N]
und em[N]
- beides funktionierte nicht.
Dieses Dokument bezieht sich auf "vorhersehbare Schnittstellennamen", kann jedoch nicht in einfachen Worten erklären, was sie sein könnten. Es bezieht sich auf einen Teil des Quellcodes, der impliziert, dass der Name in diesem Fall aus den PCI-Bus- und Steckplatznummern abgeleitet werden kann, was als unnötig komplizierter Aufwand erscheint.
Andere Nachforschungen führten mich zu der Annahme, dass dies systemd
in Verbindung mit bestimmt werden könnte udev
, aber es sind fast 100 Dateien in der Datei, und es scheint auch lächerlich /usr/lib/udev/rules.d
, eine Stunde zu verbringen, um festzustellen, wo (und ob ) es eine systemd-Konfigurationsdatei dafür gibt.
Es wäre auch schön, sicher zu wissen , dass sie zur Verfügung steht, nicht nur , wie sie genannt werden könnten , wenn sie sind, so kann ich Hardwareprobleme auszuschließen, usw. Gibt es eine einfache Möglichkeit , die Namen der verfügbaren Netzwerkschnittstellen zu finden unter Linux?
ip link
aber dann akzeptieren Sie eine Antwort, die vorschlägt,ip link show
was genau dasselbe tut. Warum?ip route
- ich schrieb diese Frage am nächsten Tag, nachdem das Problem gelöst war (siehe meine eigene Antwort); Ich bin es nicht gewohnt,ip
die übermäßig spartanischen Manpages zu verwenden und schätze sie nicht./sys
Deshalb habe ich sie wahrscheinlich nach einem Versuch aufgegeben und angefangen, sie durchzuarbeiten, da ich wusste, dass der kmod usw. geladen war und dies einfacher war mir. Ich werde das ganz aus der Frage streichen.Antworten:
Die einfachste Methode, die ich kenne, um alle Ihre Schnittstellen aufzulisten, ist
BEARBEITEN
Wenn Sie sich auf einem System befinden, auf dem dies veraltet ist, können Sie verwenden
quelle
ip
es eine Parallele gibt, da ifconfig angeblich zugunsten dieses (IMO) stumpferen und weniger benutzerfreundlichen Befehls "obsolet" wird.man ifconfig
: "HINWEIS Dieses Programm ist veraltet! Zum Ersetzen überprüfe IP ..." Das kann Linux-spezifisch sein. Hoffentlich müssen sie es für die Abwärtskompatibilität mit etwas behalten.ip
. Siehe den Wikipedia-Artikel zu ifconfig: en.wikipedia.org/wiki/Ifconfig .Der Kernel listet sie nach Namen in auf
/sys
, beide separat in (z. B.) der Baumstruktur von PCI-Geräten - obwohl es nicht einfach ist, sie dort zu finden, wenn Sie nicht wissen, wo sie anfangen sollen - und zusammen über Symlinks in/sys/class/net
. Z.B:Ein anderes Beispiel:
Wenn Sie sich nicht sicher sind, was welches ist, können Sie sie alle mit einem der folgenden Dinge auseinandersetzen:
Oder:
Und dann schauen Sie sich die (ziemlich klaren) Hinweise an, die mit
ifconfig
(ohne Argumente) aufgelistet sind . Der mit dem Freedesktop.org-Dokument verknüpfte systemd-Quellcode verweist auch auf:Obwohl in einem der obigen Fälle (
p6s1
) kein Präfix vorhanden ist.quelle
eth
. Ich glaubeen
ist für WLAN.eth
ist eine Linux- Kernelsache ; systemd implementiert über udev die vorhersehbaren Schnittstellennamen von Freedesktop.org - die Namen des Kernels sind nicht im gleichen Sinne vorhersehbar, was die Ursache aller Verwirrung ist. Das obige Zitat wird von hier aus explizit ausgeschnitten und eingefügt . Es gibt mehr als das, da ich keine systemd Maschinen habe, dieen
für Ethernet verwenden; am nächsten istem
, andere sind völlig anders. Sie können den Freedesk.org-Link in der Frage selbst lesen, um weitere Erklärungen zu erhalten.eno1
.Ich mache
cat /proc/net/dev
es immer einfach und leicht zu merkenquelle
ifconfig
= Solarisipconfig
= Windowsip
= LinuxDas weiß ich, bin aber durchaus offen für Ergänzungen und Korrekturen.
quelle
man ifconfig
auf einem Linux-System.