Sollte ich Ifconfig beenden?

171

Bei den Servern, die Infiniband-Karten bereitstellen, wird bei Verwendung des ifconfigBefehls die folgende Warnung angezeigt:

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.

Soll ich aufhören zu benutzen ifconfig? Ist es zugunsten des ipBefehls veraltet ? Oder wird es in naher Zukunft aktualisiert?

Hinweis: Diese Frage und die Antworten beziehen sich auf die "Hauptdistributionen" von GNU / Linux . Es ist nicht davon auszugehen, dass die Informationen für alle Distributionen gelten, insbesondere nicht für andere Betriebssysteme.

Zhen
quelle
23
Je früher Sie wechseln, desto besser. Ich brauchte Monate , um das Muskelgedächtnis von zu ersetzen ifconfig. Es macht Operationen unter Windows jedoch noch mehr Spaß. " ip add-Nein, warte, das ist es nicht, ifcon-Nein, Argh ipconfig"
Charles
7
Vielleicht wird ein Alias helfen: alias ipconfig='echo ipconfig is deprecated, use ip instead'. Natürlich haben Sie sinnvollere Aliase eingerichtet.
ott--
98
ifconfigist veraltet? Ich muss in einer Höhle
gelebt haben
26
Ich finde es merkwürdig, dass ein Befehl namens "ip" Operationen auf Verbindungsebene ausführen kann.
James O'Gorman
12
Es ist nur auf bestimmten Betriebssystemen veraltet. Wenn Sie Sachen außerhalb von Linux verwenden, glaube ich, dass ifconfig noch verwendet wird. Ich sehe zum Beispiel keine solche Warnung unter FreeBSD.
Stefan Lasiewski

Antworten:

154

Zitat von Thomas Pirchers Website ( cc-by-sa ):

ifconfig vs ip

Das Kommando /bin/ipgibt es schon länger. Die Leute benutzen aber weiterhin den älteren Befehl /sbin/ifconfig. Lassen Sie uns klar sein: ifconfigwird nicht schnell verschwinden, aber seine neuere Version ipist leistungsfähiger und wird es schließlich ersetzen.

Die Manpage von ipmag auf den ersten Blick einschüchternd aussehen, aber sobald Sie sich mit der Befehlssyntax vertraut gemacht haben, ist sie leicht zu lesen. Auf dieser Seite werden die neuen Funktionen von ip nicht vorgestellt. Es verfügt über eher einen Side-by-Side - Vergleich , wenn ifconfigund ipeinen schnellen Überblick über die Befehlssyntax zu erhalten.

Netzwerkgeräte und Konfiguration anzeigen

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
Fel
quelle
50
Interessanterweise ist der Befehl ip in jedem von Ihnen erwähnten Anwendungsfall länger und komplexer. Wahrscheinlich wird dies ein Hauptgrund sein, warum immer noch Leute es benutzenifconfig
TheLQ
22
@TheLQ: ipbietet viel, viel mehr Funktionen. Natürlich ist es komplexer. Auf jeden Fall können viele Befehle gekürzt werden. zB ip addr showkann auf ip a, ip link shownach ip l, ip link set eth0 upnach ip l set eth0 upusw. gekürzt werden . Dies ist vergleichbar ipmit ifconfig.
BatchyX
16
Denken Sie daran, die ganze Welt ist kein Linux-Computer. Solaris, AIX, HP-UX, die alle die BSDs und SCO (nicht , dass jemand kümmert sich um sie ) alle nutzen ifconfig. Wenn Sie ein Unix- Administrator sein möchten (nicht nur ein Linux- Administrator), sollten Sie sicherstellen, dass Sie zumindest mit ifconfig und seiner grundlegenden Syntax vertraut sind ...
voretaq7
9
Ihr erstes Beispiel beantwortet es. Warum 2 Befehle ausführen, wenn 1 es tut?
ott--
6
@ott beinhaltet so ip addr showziemlich die Ausgabe von ip link show.
nyuszika7h
40

Ja, ifconfigist zugunsten von iproute2 (dem ipBefehl) unter Linux veraltet .

In ähnlicher Weise sind die Befehle arp, routeund netstatebenfalls veraltet.

Iproute2 ist jedoch Linux-spezifisch, wenn andere Unixe verwendet werden. Daher ifconfigkann es hilfreich sein, zu wissen, wie es funktioniert, wenn Sie jemals ein anderes Unix verwenden werden.

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

Laut dem letzten Link wurde ifconfigseit +15 Jahren nicht mehr gepflegt :

Abgesehen von der Patch-Masse, die Debian angesammelt hat, hat das Net-Tools-Paket nach Version 1.60, die irgendwann am 15. April 2001 veröffentlicht wurde, keine Upstream-Entwicklung mehr erfahren.

Totor
quelle
9
ifconfigwurde von BSD damals entwickelt. Linux verwendete im Wesentlichen den IP-Stack von BSD (wie auch Windows und andere seiner Zeit, warum ipconfigist es immer noch ähnlich ifconfig). Im 2.4-Kernel-Linux, das stark vom BSD-Stack abweicht, war dies Anfang 2001. Es ist kein Zufall, dass ifconfigLinux seitdem nicht mehr gut gewartet wurde.
Chris S
3
10 Jahre!? Ich denke, es ist an der Zeit, ein "save ifconfig" -Projekt auf GitHub zu starten.
Kenchilada
20

ifconfig ist seit vielen Jahren veraltet, Zeit zu wechseln, vor allem in einem Fall wie dem Ihren.

Sven
quelle
1
Ich mag auch die Verkürzung des Cisco-ähnlichen Befehls. "ip a" = "ip address show"
Coops
5
meh. Es gibt genug Skripte und andere Tools, die über ifconfig erstellt wurden, so dass ich nicht das Bedürfnis habe zu wechseln, bis es verschwindet ...
Jason Antman
10
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.. Vielleicht ifconfigist nur unter Linux veraltet.
ctype.h
2
@ ctype.h: In der Tat ist es nur unter Linux veraltet. Das Release von ifconfig für Linux stammt aus dem Jahr 1999. Es ipwurde bereits für 2.4-Kernel empfohlen.
BatchyX
5

ipist der Ersatz für ifconfigeine Weile gewesen, wahrscheinlich wird er ifconfigirgendwann aktualisiert, aber ich würde nicht darauf warten und auch lernen, damit zu arbeiten ip. Es wird von allen Linux-Distributionen unterstützt

Blitz
quelle
8
ip war der Ersatz für ifconfig unter Linux , wie von einigen Distributionen gewählt.
Kaz
Es ist äußerst unwahrscheinlich, dass ifconfig vollständig mit Linux kompatibel gemacht werden kann. Befehle wie ifconfig eth0 192.168.0.7/24haben keine eindeutige Bedeutung: zB. wenn eth0schon 2 ip adressen drauf sind (zwei drauf, keine eine ein alias wie eth0: 1).
Jasen