Frage Soll ich Ifconfig beenden?


Mit den Servern, die Infiniband-Karten einbinden, wenn ich den ifconfig Befehl, ich bekomme diese Warnung:

Ifconfig uses the ioctl access method to get the full address 
information, which limits hardware addresses to 8 bytes.
Because Infiniband address has 20 bytes, only the first 8 bytes 
are displayed correctly.
Ifconfig is obsolete! For replacement check ip.

Sollte ich aufhören zu benutzen? ifconfig? Ist es zugunsten der ip Befehl? Oder wird es in naher Zukunft aktualisiert werden?

Hinweis: Diese Frage und Antworten beziehen sich auf GNU / Linux "große" Verteilungen. Es sollte nicht davon ausgegangen werden, dass die Informationen für alle Distributionen und insbesondere nicht für andere Betriebssysteme gelten.


155
2017-12-17 08:52


Ursprung


Je früher Sie wechseln, desto besser. Es hat mich gebraucht Monate um die Muskelspeicher von zu ersetzen ifconfig. Es macht jedoch Operationen unter Windows noch mehr Spaß. "ip add- Nein, warte, das ist es nicht, ifcon-NO, argh ipconfig" - Charles
Vielleicht hilft ein Alias: alias ipconfig='echo ipconfig is deprecated, use ip instead'. Natürlich richten Sie mehr sinnvolle Aliase ein. - ott--
ifconfig ist veraltet? Ich muss in einer Höhle gelebt haben - wim
Ich finde es merkwürdig, dass ein Befehl namens "ip" die Fähigkeit hat, Operationen auf Verbindungsebene auszuführen. - James O'Gorman
Es ist nur auf bestimmten Betriebssystemen veraltet. Wenn Sie etwas außerhalb von Linux verwenden, glaube ich, dass ifconfig immer noch verwendet wird. Ich sehe keine solche Warnung auf FreeBSD zum Beispiel. - Stefan Lasiewski


Antworten:


Zitieren Thomas PircherWebsite (cc-by-sa): 

ifconfig vs ip

Der Befehl /bin/ip gibt es schon seit einiger Zeit. Aber die Leute benutzen weiterhin den älteren Befehl /sbin/ifconfig. Damit wir uns verstehen: ifconfig wird nicht schnell weggehen, aber seine neuere Version, ip, ist stärker und wird es schließlich ersetzen.

Die Manpage von ip kann zunächst einschüchternd wirken, aber sobald Sie sich mit der Befehlssyntax vertraut gemacht haben, ist es ein einfacher Lesevorgang. Diese Seite wird nicht die neuen Funktionen von ip vorstellen. Es zeigt eher einen direkten Vergleich wenn ifconfig und ip um einen schnellen Überblick über die Befehlssyntax zu erhalten.

Zeige Netzwerkgeräte und Konfiguration 

ifconfig

ip addr show
ip link show

Aktivieren Sie eine Netzwerkschnittstelle

ifconfig eth0 up
ip link set eth0 up

Eine Netzwerkschnittstelle wird auf ähnliche Weise deaktiviert:

ifconfig eth0 down
ip link set eth0 down

143
2017-12-17 09:48



Interessant, wie in jedem Anwendungsfall, den Sie erwähnten, der Befehl ip länger und komplexer ist. Wahrscheinlich wird das der Hauptgrund sein, warum Leute immer noch benutzen ifconfig - TheLQ
@TheLQ: ip bietet viel, viel mehr Funktionen. Natürlich ist es komplexer. Wie auch immer, viele Befehle können verkürzt werden. z.B. ip addr show kann verkürzt werden ip a, ip link show zu ip l, ip link set eth0 up zu ip l set eth0 up und so weiter. Das bringt ip auf Augenhöhe mit ifconfig. - BatchyX
Denken Sie daran, die ganze Welt ist keine Linux-Maschine. Solaris, AIX, HP-UX, alle BSDs und SCO (nicht dass irgendjemand sich darum kümmert Sie) alles benutzen ifconfig. Wenn du ein sein willst Unix Admin (nicht nur ein Linux admin) sollten Sie sicherstellen, dass Sie zumindest mit ifconfig und seiner grundlegenden Syntax vertraut sind ... - voretaq7
Dein erstes Beispiel beantwortet es. Warum führen Sie 2 Befehle aus, wenn 1 dies tut? - ott--
@ott ip addr show umfasst ziemlich viel die Ausgabe von ip link show. - nyuszika7h


Ja, ifconfig ist veraltet zugunsten von iproute2 (der ip Befehl) unter Linux.

Ähnlich, die arp, route und netstat Befehle sind ebenfalls veraltet.

Allerdings ist iproute2 Linux-spezifisch, wenn einige andere Unixe verwenden ifconfig, so kann es helfen zu wissen / erinnern, wie es funktioniert, wenn Sie jemals ein anderes Unix verwenden werden ...

Um den "neuen Weg" zu lernen, schlage ich vor, dass Sie sich diese 3 Links anschauen:

Nach dem letzten Link, ifconfig wurde für +15 Jahre nicht beibehalten:

Außer der Patch-Masse, die Debian angehäuft hat, die net-tools   Paket hat keine Upstream-Entwicklung nach Version 1.60 gesehen,   irgendwann um den 15. April 2001 veröffentlicht.


38
2018-04-30 09:56



ifconfig wurde von BSD entwickelt. Linux verwendete im Wesentlichen den IP-Stack von BSD (wie auch Windows und andere der damaligen Zeit) ipconfig ist immer noch ähnlich ifconfig). In dem 2.4 Kernel Linux, der stark von BSDs Stack abweicht, war das Anfang 2001. Das ist nicht zufällig ifconfig in Linux wurde seitdem nicht gut gepflegt. - Chris S
10 Jahre!? Zeit, ein "save ifconfig" -Projekt auf GitHub zu starten, denke ich. - kenchilada


ifconfig ist seit vielen Jahren veraltet, Zeit zu wechseln, besonders in einem Fall wie deins.


19
2017-12-17 08:57



Ich mag auch seine cisco-esque Befehlsverkürzung. "ip a" = "IP-Adresse anzeigen" - Coops
meh. Es gibt genug Skripte und andere Tools, die über ifconfig aufgebaut sind, sodass ich nicht das Bedürfnis habe, zu wechseln, bis es verschwindet ... - Jason Antman
Ich habe noch nie davon gehört ip. Ich habe es gerade auf einem FreeBSD-Server getestet und es heißt ip: Command not found.. Könnte sein ifconfig ist nur unter Linux veraltet. - ctype.h
@ ctype.h: In der Tat ist es nur unter Linux veraltet. Das Release-Ziel von ifconfig für Linux stammt aus dem Jahr 1999. ip war schon die empfohlene Wahl für 2.4 Kernel. - BatchyX


ip war der Ersatz für ifconfig für eine Weile, wahrscheinlich irgendwann ifconfig werde aktualisiert, aber ich würde nicht darauf warten und lernen, mit zu arbeiten ip auch. Es wird auf allen Linux-Distributionen unterstützt


5
2017-12-17 08:57



ip ist der Ersatz für ifconfig unter Linux, als eine von einigen Distributionen getroffene Wahl. - Kaz
Es erscheint äußerst unwahrscheinlich, dass ifconfig vollständig kompatibel mit Linux gemacht werden kann. Befehle wie ifconfig eth0 192.168.0.7/24 habe keine klare Bedeutung: z. ob eth0 hat schon 2 ip-adressen drauf (zwei drauf, nicht eine alias wie eth0: 1). - Jasen