24 nützliche „IP“-Befehle zum Konfigurieren von Netzwerkschnittstellen
Kurzfassung: In diesem Leitfaden besprechen wir einige praktische Beispiele des Befehls ip. Am Ende dieses Handbuchs werden Benutzer in der Lage sein, Netzwerkaufgaben unter Linux effizient über die Befehlszeilenschnittstelle auszuführen.
Systemadministratoren müssen häufig Netzwerkaufgaben auf Linux-Servern ausführen. Es gibt eine Vielzahl grafischer und Befehlszeilentools auf dem Markt. Die meisten Linux-Benutzer bevorzugen jedoch aufgrund seiner Einfachheit und umfangreichen Funktionalität die Verwendung des ip-Befehls.
Der IP-Befehl ist ein neues Netzwerk-Befehlszeilendienstprogramm, das verwendet wird, um einer Netzwerkschnittstelle eine IP-Adresse zuzuweisen oder nützliche Netzwerkvariablen auf einem Linux-System zu konfigurieren/aktualisieren.
Es ist Teil des iproute2-Pakets und bietet verschiedene Netzwerkverwaltungsaufgaben wie das Hoch- oder Herunterfahren von Netzwerkschnittstellen, das Zuweisen und Entfernen von IP-Adressen und Routen, die Verwaltung des ARP-Cache und vieles mehr.
Der ip-Befehl ähnelt stark dem alten ifconfig-Befehl, ist jedoch wesentlich leistungsfähiger und verfügt über mehr Funktionen und Fähigkeiten.
Der Befehl ifconfig ist veraltet und wurde in allen modernen Linux-Distributionen durch den Befehl ip ersetzt. Der ifconfig-Befehl funktioniert jedoch weiterhin und ist für die meisten Linux-Distributionen verfügbar.
Hinweis: Bitte erstellen Sie eine Sicherungskopie der Konfigurationsdatei, bevor Sie Änderungen vornehmen.
1. Konfigurieren Sie die statische IP-Adresse dauerhaft unter Linux
Um eine statische IP-Adresse unter Linux dauerhaft zu konfigurieren, müssen Sie die Netzwerkkonfigurationsdatei aktualisieren oder bearbeiten, um einem System eine statische IP-Adresse zuzuweisen. Sie müssen ein Superuser sein und über das Terminal oder die Eingabeaufforderung den Befehl su (Benutzer wechseln) eingeben.
Legen Sie eine statische IP-Adresse in RHEL-Systemen fest
Öffnen und bearbeiten Sie die Netzwerkkonfigurationsdateien für (eth0 oder eth1) mit Ihrem bevorzugten Texteditor. Beispielsweise wird bei RHEL-basierten Distributionen die IP-Adresse der eth0-Schnittstelle wie folgt zugewiesen.
vi /etc/sysconfig/network-scripts/ifcfg-eth0 [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
Legen Sie eine statische IP-Adresse in Debian-Systemen fest
Um die permanente statische IP-Adresse zu konfigurieren, müssen Sie Ihre Netzwerkschnittstellen-Konfigurationsdatei /etc/network/interfaces ändern, um dauerhafte Änderungen vorzunehmen, wie unten für Debian-basierte Distributionen gezeigt.
sudo nano /etc/network/interfaces [On Debian, Ubuntu and Mint]
Starten Sie anschließend die Netzwerkdienste neu, nachdem Sie alle Details mit dem folgenden Befehl eingegeben haben.
sudo systemctl restart networking
2. Konfigurieren Sie vorübergehend die statische IP-Adresse unter Linux
Für temporäre Netzwerkkonfigurationen können Sie den ip-Befehl verwenden, um einer bestimmten Schnittstelle (eth2) im Handumdrehen eine IP-Adresse zuzuweisen.
ip addr add 172.19.1.10/24 dev eth2
OR
sudo ip addr add 172.19.1.10/24 dev eth2
Hinweis: Leider gehen alle diese Einstellungen nach einem Systemneustart verloren.
3. So zeigen Sie alle Netzwerkschnittstellen an
Im IP-Befehl stellt das Link-Objekt die Netzwerkschnittstelle dar. Wir können damit den Befehl show verwenden, um alle Netzwerkschnittstellen anzuzeigen.
Lassen Sie uns nun alle Netzwerkschnittstellen mit dem folgenden Befehl anzeigen:
ip link show
Die obige Ausgabe zeigt die Details aller Netzwerkschnittstellen, wie Schnittstellenname, Flags, Status, Linkadresse, Broadcast-Adresse usw.
4. So überprüfen Sie eine IP-Adresse einer bestimmten Netzwerkschnittstelle
Um detaillierte Informationen zu Ihrer individuellen Netzwerkschnittstelle wie IP-Adresse und MAC-Adresse zu erhalten, verwenden Sie den folgenden Befehl wie unten gezeigt.
ip link show eth2
Bisher haben wir das Link-Objekt verwendet, um detaillierte Informationen zu den Netzwerkschnittstellen anzuzeigen. Es wird jedoch nicht die mit der Netzwerkschnittstelle verknüpfte IP-Adresse angezeigt. Um diese Einschränkung zu überwinden, können wir das Objekt addr
mit dem Befehl ip verwenden.
Lassen Sie uns dies anhand eines Beispiels verstehen.
ip addr show
Hier können wir sehen, dass die Ausgabe jetzt die IP-Adressen aller Netzwerkschnittstellen zusammen mit anderen Details anzeigt.
Um die IP-Adresse der einzelnen Netzwerkschnittstelle anzuzeigen, müssen Sie lediglich den Namen der Netzwerkschnittstelle als Argument für den Befehl angeben.
ip addr show eth2
5. So zeigen Sie die IP-Adresse in farbiger Ausgabe an
Der IP-Befehl zeigt detaillierte Informationen zu den Netzwerkobjekten an. Manchmal müssen wir jedoch einen Blick auf die begrenzten Informationen werfen. In solchen Fällen können wir die farbige Ausgabe aktivieren. Diese Option hebt wichtige Details in verschiedenen Farben hervor.
Lassen Sie uns die Option --color
des Befehls verwenden, um die Ausgabe in verschiedenen Farben anzuzeigen:
ip --color addr show eth2
In der obigen Ausgabe können wir sehen, dass der Schnittstellenname, die Ethernet-Adresse und der Status in verschiedenen Farben hervorgehoben sind.
6. So zeigen Sie die IP-Adresse im JSON-Format an
In den vorherigen Beispielen haben wir gesehen, dass der ip-Befehl aussagekräftige Informationen anzeigt. Es ist jedoch keine leichte Aufgabe, die Rohausgabe zu analysieren und mithilfe rudimentärer Skripte aussagekräftige Informationen zu extrahieren. In solchen Fällen können wir den ip-Befehl anweisen, die Ausgabe in einem JSON-Format zu generieren.
Lassen Sie uns also die Option -j
mit dem Befehl verwenden, um dieselbe Ausgabe in einem JSON-Format anzuzeigen:
ip -j link show eth2
Diese Methode ist bei der Automatisierung praktisch, da JSON ein weithin akzeptiertes Format ist und viele JSON-Parser-Bibliotheken/-Tools in verschiedenen Programmiersprachen verfügbar sind.
7. So machen Sie die JSON-Ausgabe besser lesbar
Im vorherigen Beispiel haben wir die Option -j
verwendet, um die Ausgabe im JSON-Format anzuzeigen. Dieses standardmäßige JSON-Format ist kompakt und platzsparend. Aufgrund der fehlenden Einrückung ist die Ausgabe jedoch nicht gut lesbar.
Um diese Einschränkung zu überwinden, können wir die Option -p
verwenden, die die Ausgabe durch Einrücken besser lesbar macht. Lassen Sie uns dies anhand des folgenden Beispiels verstehen:
ip -j -p link show eth2
Hier können wir sehen, dass die gleiche Ausgabe im Vergleich zu den vorherigen Beispielen viel besser lesbar ist.
8. So entfernen Sie eine IP-Adresse von der Netzwerkschnittstelle
Im vorherigen Beispiel haben wir den Unterbefehl „add“ verwendet, um eine IP-Adresse zuzuweisen. Auf ähnliche Weise können wir den Unterbefehl del verwenden, um eine bestimmte IP-Adresse zu entfernen.
Der folgende Befehl entfernt eine zugewiesene IP-Adresse von der angegebenen Schnittstelle (eth2).
ip addr del 172.19.1.10/24 dev eth2
OR
sudo ip addr del 172.19.1.10/24 dev eth2
Überprüfen wir nun, ob die IP-Adresse entfernt wurde:
ip -j -p addr show eth2
In der obigen Ausgabe können wir sehen, dass die aktuelle eth2-Netzwerkschnittstelle nur eine IP-Adresse hat.
9. So aktivieren Sie die Netzwerkschnittstelle
Das Flag „up“ mit dem Schnittstellennamen (eth2) aktiviert eine Netzwerkschnittstelle. Der folgende Befehl aktiviert beispielsweise die Netzwerkschnittstelle eth2.
ip link set eth2 up
OR
sudo ip link set dev eth2 up
Schauen wir uns nun den aktualisierten Status an:
ip -j -p link show eth2 | grep operstate
10. So deaktivieren Sie die Netzwerkschnittstelle
Das Flag „down“ mit dem Schnittstellennamen (eth2) deaktiviert eine Netzwerkschnittstelle. Der folgende Befehl deaktiviert beispielsweise die Netzwerkschnittstelle eth2.
ip link set eth2 down
OR
sudo ip link set eth2 down
Lassen Sie uns nun den Status der eth2-Netzwerkschnittstelle überprüfen:
ip -j -p link show eth2 | grep operstate
Die obige Ausgabe zeigt den geänderten Status der Netzwerkschnittstelle.
11. So löschen Sie IP-Adressen der Netzwerkschnittstelle
Im vorherigen Beispiel haben wir gesehen, wie man mit einem del-Unterbefehl eine IP-Adresse entfernt. Manchmal müssen wir jedoch alle IP-Adressen der jeweiligen Netzwerkschnittstelle entfernen. In solchen Fällen können wir den Unterbefehl flush verwenden.
Verwenden Sie zunächst den Unterbefehl flush, um alle IP-Adressen der Netzwerkschnittstelle eth2 zu entfernen:
sudo ip addr flush eth2
Überprüfen wir nun, ob alle IP-Adressen der Netzwerkschnittstelle eth2 entfernt wurden:
ip -j -p addr show eth2
In der obigen Ausgabe zeigt das Feld addr_info das leere JSON-Array. Dies weist darauf hin, dass der Netzwerkschnittstelle eth2 keine IP-Adresse zugeordnet ist.
12. Wie überprüfe ich die Routing-Tabelle?
Eine Routing-Tabelle speichert die notwendigen Informationen, um ein Netzwerkpaket an das richtige Ziel weiterzuleiten. Wir können das route-Objekt des IP-Befehls verwenden, um die Routing-Regeln anzuzeigen.
Lassen Sie uns den folgenden Befehl verwenden, um alle Regeln der Routing-Tabelle aufzulisten:
ip route show
In der obigen Ausgabe stellt die erste Spalte das Ziel dar, während die letzte Spalte die Quell-IP-Adresse darstellt.
13. Wie füge ich eine neue statische Route hinzu?
Warum müssen Sie statische Routen oder manuelle Routen hinzufügen, da der Datenverkehr nicht über das Standard-Gateway passieren darf? Wir müssen statische Routen hinzufügen, um den Verkehr auf dem besten Weg zum Ziel weiterzuleiten.
sudo ip route add 172.19.1.0/24 dev eth2 proto kernel scope link src 172.19.1.2
Überprüfen wir nun, ob der Eintrag erfolgreich hinzugefügt wurde:
ip route show
15. So entfernen Sie eine statische Route
Der Unterbefehl del entfernt einen bestimmten Eintrag aus der Routing-Tabelle. Der folgende Befehl entfernt beispielsweise den Eintrag der Geräteroute eth2:
sudo ip route del 172.19.1.0/24
Überprüfen wir nun, ob der Eintrag erfolgreich entfernt wurde:
ip route show
16. Wie füge ich permanente statische Routen hinzu?
Alle oben genannten Routen gehen nach einem Systemneustart verloren. Um eine permanente statische Route hinzuzufügen, bearbeiten Sie die Datei /etc/sysconfig/network-scripts/route-eth2 (Wir speichern die statische Route für (eth2). Standardmäßig ist die Die Datei route-eth2 ist nicht vorhanden und muss erstellt werden.
Festlegen einer permanenten Route in RHEL-Systemen
vi /etc/sysconfig/network-scripts/route-eth2
und die folgenden Zeilen hinzufügen und speichern und beenden.
172.19.1.0/24 via 172.19.1.2 dev eth2
Festlegen einer permanenten Route in Debian-Systemen
Öffnen Sie die Datei /etc/network/interfaces und fügen Sie am Ende die statischen Persistenzrouten hinzu. IP-Adressen können in Ihrer Umgebung unterschiedlich sein.
sudo vi /etc/network/interfaces
auto eth2
iface eth2 inet static
address 172.19.50.2
netmask 255.255.255.0
gateway 172.19.50.100
#########{Static Route}###########
up ip route add 172.19.1.0/24 via 172.19.1.2 dev eth2
Starten Sie anschließend die Netzwerkdienste neu, nachdem Sie alle Details mit dem folgenden Befehl eingegeben haben.
sudo systemctl restart networking
17. Wie füge ich das Standard-Gateway hinzu?
Im Netzwerk spielt das Standard-Gateway eine wichtige Rolle. Es wird verwendet, wenn die Routing-Tabelle keine Informationen über das Ziel enthält.
Das Standard-Gateway kann global oder für schnittstellenspezifische Konfigurationsdateien angegeben werden. Der Vorteil des Standard-Gateways besteht darin, dass im System mehr als eine Netzwerkkarte vorhanden ist. Sie können das Standard-Gateway im Handumdrehen hinzufügen, wie unter dem Befehl gezeigt.
Fügen wir zunächst eine eth0-Netzwerkschnittstelle als Standard-Gateway hinzu:
sudo ip route add default via 172.17.0.1
Lassen Sie uns nun die Standard-Gateway-Einstellung mit dem folgenden Befehl überprüfen:
ip route show
Bitte beachten Sie, dass wir diesen Befehl auf einer Testmaschine ausgeführt haben. Seien Sie vorsichtig, wenn Sie diesen Befehl in der Produktionsumgebung verwenden.
18. So entfernen Sie ein Standard-Gateway
Mit dem folgenden Befehl können wir das Standard-Gateway entfernen:
sudo ip route del default
Lassen Sie uns nun die Routing-Tabelle auflisten, um zu überprüfen, ob das Standard-Gateway entfernt wurde:
ip route show
19. So zeigen Sie den ARP-Cache an
ARP steht für das Address Resolution Protocol, das verwendet wird, um die MAC-Adresse zu finden, die mit der jeweiligen IP-Adresse verknüpft ist.
Wir können das neigh-Objekt mit dem Befehl ip verwenden, um den ARP-Cache anzuzeigen:
ip neigh show
Im obigen Befehl stellt „neigh“ benachbarte Objekte dar.
20. So fügen Sie einen ARP-Eintrag hinzu
Um einen neuen ARP-Eintrag zu erstellen, können wir den Unterbefehl add mit dem Objekt neigh verwenden.
sudo ip neigh add 172.19.1.0 lladdr 02:42:e3:40:a6:b1 dev eth2
Lassen Sie uns nun die ARP-Cache-Einträge auflisten:
ip neigh show
In der obigen Ausgabe sehen wir den neuen Eintrag für die Netzwerkschnittstelle eth2.
21. So entfernen Sie einen ARP-Eintrag
Wie bei anderen Netzwerkobjekten können wir den Unterbefehl del verwenden, um den ARP-Eintrag zu entfernen. Der folgende Befehl entfernt beispielsweise den ARP-Eintrag der Netzwerkschnittstelle eth2:
sudo ip neigh del 172.19.1.0 dev eth2
Überprüfen wir nun, ob der Eintrag entfernt wurde, indem wir den ARP-Cache auflisten:
ip neigh show
22. So leeren Sie die ARP-Einträge
Mit dem Unterbefehl flush können wir mehrere ARP-Einträge entfernen. Um dies zu verstehen, fügen Sie zunächst einige ARP-Einträge mit dem Status STALE hinzu:
sudo ip neigh add 172.19.1.0 lladdr 02:42:e3:40:a6:b1 dev eth2 nud stale
sudo ip neigh add 172.19.2.0 lladdr 02:42:e3:40:a6:b2 dev eth2 nud stale
sudo ip neigh add 172.19.3.0 lladdr 02:42:e3:40:a6:b3 dev eth2 nud stale
Überprüfen Sie als Nächstes, ob die neuen Einträge erfolgreich hinzugefügt wurden:
ip neigh show
Leeren Sie dann alle Einträge mit dem folgenden Befehl:
sudo ip neigh flush all
Überprüfen Sie abschließend, ob alle Einträge entfernt wurden:
ip neigh show
23. So legen Sie MTU für die Netzwerkschnittstelle fest
MTU steht für Maximum Transmission Unit und stellt die größte Paketgröße dar, die in einer einzelnen Transaktion übertragen werden kann. Wir können die MTU-Größe entsprechend unseren Leistungsanforderungen manipulieren.
Lassen Sie uns zunächst die MTU der eth2-Netzwerkschnittstelle ermitteln:
ip -j -p link show eth2 | grep mtu
Aktualisieren Sie als Nächstes die MTU-Größe der eth2-Netzwerkschnittstelle auf 3000:
sudo ip link set mtu 3000 dev eth2
Überprüfen Sie abschließend, ob die MTU erfolgreich aktualisiert wurde:
ip -j -p link show eth2 | grep mtu
24. So ändern Sie die Netzwerk-Mac-Adresse
Mit dem IP-Befehl können wir die MAC-Adresse der Netzwerkschnittstelle ändern. Um dies zu erreichen, können wir den Unterbefehl set mit dem Link-Objekt verwenden:
Listen Sie zunächst die aktuelle MAC-Adresse der eth2-Netzwerkschnittstelle auf:
ip -j -p link show eth2 | grep address
Als nächstes ändern Sie die MAC-Adresse der Netzwerkschnittstelle mit dem folgenden Befehl:
sudo ip link set dev eth2 address 02:42:ac:13:01:03
Überprüfen Sie abschließend, ob die MAC-Adresse geändert wurde:
ip -j -p link show eth2 | grep address
Weitere Informationen zum IP-Befehl finden Sie auf der Handbuchseite zum Ausführen von man ip über das Terminal/die Eingabeaufforderung.
man ip
Abschluss
In diesem Artikel haben wir einige gängige Beispiele für den IP-Befehl besprochen. Diese Beispiele kann man im Alltag für die Netzwerkadministration nutzen.
Kennen Sie ein anderes bestes Beispiel für den IP-Befehl unter Linux? Teilen Sie uns Ihre Meinung in den Kommentaren unten mit.