Ich habe einige Artikel / Tutorials zum Befehl 'ifconfig' gelesen, die meisten enthielten eine gemeinsame Aussage -
"ifconfig wird vom Befehl ip verworfen"
und vorgeschlagen, IP-Befehl zu lernen. Aber keiner von ihnen hat erklärt, wie der Befehl 'ip' mächtiger ist als 'ifconfig'.
Was ist der Unterschied zwischen beiden?
linux
networking
ip
command
Mandar Shinde
quelle
quelle
Antworten:
ifconfig
ist vonnet-tools
, die mit dem Linux-Netzwerk-Stack schon lange nicht mehr Schritt halten konnten. Es wird auch weiterhinioctl
für die Netzwerkkonfiguration verwendet, was eine hässliche und weniger leistungsfähige Art der Interaktion mit dem Kernel darstellt.Viele Änderungen im Linux-Netzwerkcode und viele neue Funktionen sind nicht verfügbar über
net-tools
: Multipath-Routing, Richtlinien-Routing (siehe RPDB).route
Ermöglicht Ihnen dumme Dinge wie das Hinzufügen mehrerer Routen zum selben Ziel mit derselben Metrik.Zusätzlich:
ifconfig
meldet für einige Geräte nicht die richtige Hardwareadresse.ipip
,sit
,gre
,l2tp
etc. im Kernel statischen Tunneln.tun
odertap
Geräte.net-tools
.Siehe auch
ifconfig
saugt .BEARBEITEN : Die Behauptung über die
net-tools
Beendigung der Entwicklung, dass ich inzwischen vergessen habe, wo ich für diesen Beitrag hinkomme, wurde entfernt.net-tools
Seitiproute2
der Veröffentlichung wurde daran gearbeitet, obwohl es sich hauptsächlich um Fehlerbehebungen und kleinere Verbesserungen und Funktionen wie die Internationalisierung handelt.quelle
ifconfig
. Es gibt zum Beispiel ein anderes in GNU inetutils. Und das ist noch nicht alles. unix.stackexchange.com/a/504084/5132ifconfig
ist ein traditioneller Befehl zum Anzeigen von Informationen zu Netzwerkschnittstellen und zum Ändern einiger Einstellungen. Insbesondere kann es Schnittstellen nach oben und unten bringen. Es existiert auf den meisten Unix-Varianten.Unter Linux hat sich der
ifconfig
Befehl schon lange nicht mehr weiterentwickelt. Es ist immer noch vollkommen in Ordnung für das, was es tut. Wenn Sieifconfig
für etwas verwenden, gibt es keinen Grund, damit aufzuhören.Linux stellt auch den
ip
Befehl aus der iproute2- Tool-Suite bereit . Derip
Befehl kombiniert mehrere klassische Befehle und mehr, einschließlichifconfig
,route
undarp
.ip
kann viel mehr alsifconfig
. Ist andererseitsip
nicht immer vorhanden, insbesondere auf eingebetteten Systemen (und niemals auf anderen Unix-Varianten als Linux).ifconfig
Die Ausgabe von Parsing ist irgendwie beschissen.ip
Die Ausgabe von Parsing ist irgendwie beschissen. Kein Gewinner da.quelle
ip
, dass die Ausgabe von Parsing ziemlich einfach und mit Sicherheit viel einfacher ist alsifconfig
. Ich finde es auch toll, dass in vielen Fällen die Ausgabe einesip
Befehls als Eingabe für einen anderenip
Befehl verwendet werden kann, ohne dass dies geändert werden muss (zum Beispiel kann jede Zeile vonip route show
als Argument für verwendet werdenip route add
).ip route
undip rule
Ausgabe ist ziemlich klar und ziemlich einfach zu analysieren. Aberip link
oderip addr
ist ein Schmerz. Ich wünschte wirklich, jemand würde einen Patch oder etwas anderes einreichen, um dieip addr
genauen Aussagen auszudrucken, vielleicht mit einem Schalter, mit dem Sie die aktuelle Konfiguration einrichten würden, wie Sie es mit bekommenip route show
.Nur um die Antwort von pilona ein wenig zu ergänzen. Um 2005 wurde ein neuer Mechanismus zur Steuerung des Netzwerkstacks eingeführt - Netlink-Sockets .
Zum Konfigurieren der Netzwerkschnittstelle
iproute2
wird dieser Vollduplex-Netlink-Socket-Mechanismus verwendet, währendifconfig
einioctl
Systemaufruf erforderlich ist. Hier sind 2 Hauptartikel über die Motivation hinter netlink und die Verwendung von rtnetlink .quelle