ip — Netzwerk-Interfaces, Adressen und Routen verwalten
Praxis-Guide zu ip (iproute2) — Interfaces, Adressen, Routen, Tunnel und Netzwerk-Namespaces unter Linux verwalten, Nachfolger von ifconfig, route und arp.
Das ip-Kommando aus dem iproute2-Paket ist das moderne Standard-Werkzeug für Linux-Netzwerkverwaltung. Es ersetzt die veralteten Tools ifconfig, route und arp durch eine einheitliche, konsistente Schnittstelle: Mit ip link verwaltest du Netzwerk-Interfaces, mit ip addr IPv4- und IPv6-Adressen, mit ip route die Routing-Tabelle. Darüber hinaus deckt es Neighbour-Cache, Policy-Routing, Tunnel, Multicast und Netzwerk-Namespaces ab – alles in einem einzigen Befehl, bei Bedarf als JSON-Ausgabe für Skripte.
Allgemeine Syntax & Optionen
ip [ OPTIONS ] OBJECT { COMMAND | help } — Allgemeine Syntax. OBJECT kann link, addr, route, neigh, rule, tunnel, netns usw. sein.
ip -4 ... — Ausgabe auf IPv4 beschränken.
ip -4 addr showip -6 ... — Ausgabe auf IPv6 beschränken.
ip -6 addr showip -br ... — Kompaktes Ausgabeformat. Kurz und gut lesbar.
ip -br addr showip -c ... — Farbige Ausgabe für bessere Übersichtlichkeit.
ip -c addr showip -j ... — JSON-Ausgabeformat. Nützlich für Skripte.
ip -j addr show | jq .ip -s ... — Statistiken anzeigen (Paketzähler, Fehler usw.).
ip -s link show eth0ip -d ... — Detaillierte/erweiterte Informationen anzeigen.
ip -d link showip -h ... — Menschenlesbare Ausgabe mit Einheitensuffixen (KB, MB, GB).
ip -h -s link showip -o ... — Einzeilige Ausgabe pro Datensatz. Praktisch für die Verarbeitung mit grep/awk.
ip -o addr show | awk '{print $2, $4}'ip link — Netzwerk-Interfaces
ip link show — Alle Netzwerk-Interfaces mit Status und MAC-Adresse auflisten.
ip link showip link show dev DEVICE — Details eines bestimmten Interfaces anzeigen.
ip link show dev eth0ip link set dev DEVICE up — Ein Interface aktivieren (hochfahren).
sudo ip link set dev eth0 upip link set dev DEVICE down — Ein Interface deaktivieren (herunterfahren).
sudo ip link set dev eth0 downip link set dev DEVICE mtu MTU — Die Maximum Transmission Unit eines Interfaces setzen.
sudo ip link set dev eth0 mtu 9000ip link set dev DEVICE address MAC — Die MAC-Adresse eines Interfaces ändern.
sudo ip link set dev eth0 address 02:42:ac:11:00:02ip link set dev DEVICE name NEWNAME — Ein Interface umbenennen (muss vorher deaktiviert sein).
sudo ip link set dev eth0 name lan0ip link set dev DEVICE promisc on — Promiscuous-Modus für ein Interface aktivieren.
sudo ip link set dev eth0 promisc onip link set dev DEVICE txqueuelen N — Die Sendewarteschlangenlänge setzen.
sudo ip link set dev eth0 txqueuelen 5000ip link set dev DEVICE multicast on|off — Multicast auf einem Interface aktivieren oder deaktivieren.
sudo ip link set dev eth0 multicast onip link — Virtuelle Interfaces
ip link add NAME type veth peer name PEER — Ein virtuelles Ethernet-Paar erstellen. Daten, die an ein Ende gesendet werden, erscheinen am anderen Ende.
sudo ip link add veth0 type veth peer name veth1ip link add NAME type bridge — Eine Netzwerk-Bridge erstellen.
sudo ip link add br0 type bridgeip link set dev DEVICE master BRIDGE — Ein Interface zu einer Bridge hinzufügen.
sudo ip link set dev eth0 master br0ip link set dev DEVICE nomaster — Ein Interface aus einer Bridge entfernen.
sudo ip link set dev eth0 nomasterip link add NAME type dummy — Ein Dummy-Interface erstellen (nützlich für Tests oder als Loopback).
sudo ip link add dummy0 type dummyip link add link DEVICE name NAME type vlan id VID — Ein VLAN-Interface auf einem physischen Interface erstellen.
sudo ip link add link eth0 name eth0.100 type vlan id 100ip link add NAME type macvlan mode bridge — Ein macvlan-Interface erstellen. Modi: bridge, vepa, private, passthru.
sudo ip link add macvlan0 link eth0 type macvlan mode bridgeip link delete NAME — Ein virtuelles Interface löschen.
sudo ip link delete br0ip addr — IP-Adressen
ip addr show — Alle IP-Adressen aller Interfaces anzeigen. Kurzform: ip a.
ip addr showip addr show dev DEVICE — IP-Adressen eines bestimmten Interfaces anzeigen.
ip addr show dev eth0ip addr show scope global — Nur globale Adressen anzeigen (ohne Link-Local oder Loopback).
ip addr show scope globalip addr show dynamic — Nur dynamisch zugewiesene Adressen anzeigen (DHCP, SLAAC).
ip addr show dynamicip addr show permanent — Nur statisch konfigurierte Adressen anzeigen.
ip addr show permanentip addr add ADDRESS/PREFIX dev DEVICE — Eine IP-Adresse zu einem Interface hinzufügen.
sudo ip addr add 192.168.1.100/24 dev eth0ip addr add ADDRESS/PREFIX dev DEVICE label LABEL — Eine Adresse mit Label hinzufügen (Interface-Alias).
sudo ip addr add 10.0.0.1/24 dev eth0 label eth0:1ip addr add ADDRESS/PREFIX broadcast BCAST dev DEVICE — Eine Adresse mit einer bestimmten Broadcast-Adresse hinzufügen.
sudo ip addr add 192.168.1.100/24 broadcast 192.168.1.255 dev eth0ip addr del ADDRESS/PREFIX dev DEVICE — Eine IP-Adresse von einem Interface entfernen.
sudo ip addr del 192.168.1.100/24 dev eth0ip addr flush dev DEVICE — Alle Adressen eines Interfaces entfernen.
sudo ip addr flush dev eth0ip addr replace ADDRESS/PREFIX dev DEVICE — Eine Adresse hinzufügen oder aktualisieren. Existiert sie bereits, wird sie aktualisiert; andernfalls neu hinzugefügt.
sudo ip addr replace 192.168.1.100/24 dev eth0ip route — Routing-Tabelle
ip route show — Die Haupt-Routing-Tabelle anzeigen. Kurzform: ip r.
ip route showip route show table TABLE — Eine bestimmte Routing-Tabelle anzeigen (main, local, default oder benutzerdefinierter Name/Nummer).
ip route show table localip route show table all — Routen aus allen Routing-Tabellen anzeigen.
ip route show table allip route get ADDRESS — Die Route abfragen, die der Kernel für eine bestimmte Adresse verwenden würde.
ip route get 8.8.8.8ip route get ADDRESS from SOURCE — Die Route zu einem Ziel von einer bestimmten Quelladresse abfragen.
ip route get 8.8.8.8 from 192.168.1.100ip route add NETWORK/PREFIX via GATEWAY — Eine statische Route über ein Gateway hinzufügen.
sudo ip route add 10.0.0.0/8 via 192.168.1.1ip route add NETWORK/PREFIX dev DEVICE — Eine Route direkt über ein Interface hinzufügen (ohne Gateway).
sudo ip route add 10.0.0.0/8 dev eth0ip route add default via GATEWAY — Das Standard-Gateway setzen.
sudo ip route add default via 192.168.1.1ip route add default via GATEWAY dev DEVICE — Das Standard-Gateway mit einem bestimmten Ausgangs-Interface setzen.
sudo ip route add default via 192.168.1.1 dev eth0ip route add NETWORK/PREFIX via GW metric METRIC — Eine Route mit einer bestimmten Metrik hinzufügen (Priorität). Niedrigere Metrik = höhere Priorität.
sudo ip route add 10.0.0.0/8 via 192.168.1.1 metric 100ip route change NETWORK/PREFIX via GATEWAY — Eine vorhandene Route ändern.
sudo ip route change default via 192.168.1.254ip route replace NETWORK/PREFIX via GATEWAY — Eine vorhandene Route ersetzen oder hinzufügen, falls sie nicht existiert.
sudo ip route replace 10.0.0.0/8 via 192.168.1.1ip route del NETWORK/PREFIX — Eine Route löschen.
sudo ip route del 10.0.0.0/8ip route flush table main — Alle Routen aus der Haupt-Routing-Tabelle entfernen.
sudo ip route flush table mainip route add blackhole NETWORK/PREFIX — Eine Blackhole-Route hinzufügen. Pakete an dieses Netz werden stillschweigend verworfen.
sudo ip route add blackhole 198.51.100.0/24ip route add unreachable NETWORK/PREFIX — Eine Unreachable-Route hinzufügen. Gibt ICMP host unreachable zurück.
sudo ip route add unreachable 203.0.113.0/24ip route add prohibit NETWORK/PREFIX — Eine Prohibit-Route hinzufügen. Gibt ICMP administratively prohibited zurück.
sudo ip route add prohibit 192.0.2.0/24ip route — Erweitertes Routing
ip route add NETWORK/PREFIX nexthop via GW1 weight W1 nexthop via GW2 weight W2 — Multipath-Routing. Datenverkehr gewichtet auf mehrere Gateways verteilen.
sudo ip route add default nexthop via 192.168.1.1 weight 1 nexthop via 192.168.2.1 weight 2ip route add NETWORK/PREFIX via GW src SOURCE — Eine Route mit bevorzugter Quelladresse hinzufügen.
sudo ip route add 10.0.0.0/8 via 192.168.1.1 src 192.168.1.100ip route add NETWORK/PREFIX via GW mtu MTU — Eine Route mit einer bestimmten Pfad-MTU hinzufügen.
sudo ip route add 10.0.0.0/8 via 192.168.1.1 mtu 1400ip route add NETWORK/PREFIX via GW table TABLE — Eine Route zu einer benutzerdefinierten Routing-Tabelle hinzufügen.
sudo ip route add 10.0.0.0/8 via 192.168.1.1 table 100ip route save > FILE — Die aktuelle Routing-Tabelle in eine Binärdatei speichern.
ip route save > routes.binip route restore < FILE — Routen aus einer zuvor gespeicherten Datei wiederherstellen.
sudo ip route restore < routes.binip neigh — ARP / Neighbor-Cache
ip neigh show — Den ARP/NDP-Neighbor-Cache anzeigen (MAC ↔ IP-Zuordnungen). Kurzform: ip n.
ip neigh showip neigh show dev DEVICE — Neighbor-Einträge eines bestimmten Interfaces anzeigen.
ip neigh show dev eth0ip neigh show nud STATE — Neighbor nach Status filtern: reachable, stale, failed, permanent, noarp, incomplete, delay, probe.
ip neigh show nud reachableip neigh add ADDRESS lladdr MAC dev DEVICE — Einen statischen ARP-Eintrag hinzufügen.
sudo ip neigh add 192.168.1.1 lladdr aa:bb:cc:dd:ee:ff dev eth0ip neigh change ADDRESS lladdr MAC dev DEVICE — Einen vorhandenen Neighbor-Eintrag ändern.
sudo ip neigh change 192.168.1.1 lladdr aa:bb:cc:dd:ee:ff dev eth0ip neigh replace ADDRESS lladdr MAC dev DEVICE nud permanent — Einen permanenten (statischen) ARP-Eintrag hinzufügen oder ersetzen.
sudo ip neigh replace 192.168.1.1 lladdr aa:bb:cc:dd:ee:ff dev eth0 nud permanentip neigh del ADDRESS dev DEVICE — Einen Neighbor-Eintrag löschen.
sudo ip neigh del 192.168.1.1 dev eth0ip neigh flush dev DEVICE — Den Neighbor-Cache eines Interfaces leeren.
sudo ip neigh flush dev eth0ip neigh flush all — Den gesamten Neighbor-Cache leeren.
sudo ip neigh flush allip rule — Policy-Routing
ip rule show — Alle Policy-Routing-Regeln anzeigen.
ip rule showip rule add from SOURCE/PREFIX table TABLE — Datenverkehr aus einem Quell-Netz über eine benutzerdefinierte Routing-Tabelle leiten.
sudo ip rule add from 10.0.0.0/8 table 100ip rule add to DEST/PREFIX table TABLE — Datenverkehr zu einem Ziel-Netz über eine benutzerdefinierte Routing-Tabelle leiten.
sudo ip rule add to 172.16.0.0/12 table 200ip rule add from SOURCE/PREFIX to DEST/PREFIX table TABLE — Quelle und Ziel gemeinsam für Policy-Routing abgleichen.
sudo ip rule add from 10.0.0.0/8 to 172.16.0.0/12 table 100ip rule add fwmark MARK table TABLE — Pakete mit einem bestimmten Firewall-Mark über eine benutzerdefinierte Tabelle leiten.
sudo ip rule add fwmark 1 table 100ip rule add from SOURCE/PREFIX priority PRIO table TABLE — Eine Regel mit expliziter Priorität hinzufügen. Niedrigere Zahl = höhere Priorität.
sudo ip rule add from 10.0.0.0/8 priority 200 table 100ip rule del RULE — Eine Policy-Routing-Regel löschen.
sudo ip rule del from 10.0.0.0/8 table 100ip rule flush — Alle Policy-Routing-Regeln entfernen.
sudo ip rule fluship tunnel — IP-Tunnel
ip tunnel show — Alle konfigurierten IP-Tunnel anzeigen.
ip tunnel showip tunnel add NAME mode gre remote REMOTE local LOCAL — Einen GRE-Tunnel zwischen zwei Endpunkten erstellen.
sudo ip tunnel add gre1 mode gre remote 203.0.113.1 local 198.51.100.1ip tunnel add NAME mode ipip remote REMOTE local LOCAL — Einen IPIP (IP-in-IP)-Tunnel erstellen.
sudo ip tunnel add tun0 mode ipip remote 203.0.113.1 local 198.51.100.1ip tunnel add NAME mode sit remote REMOTE local LOCAL — Einen SIT-Tunnel erstellen (IPv6-in-IPv4).
sudo ip tunnel add sit1 mode sit remote 203.0.113.1 local 198.51.100.1ip tunnel change NAME ... — Eine vorhandene Tunnel-Konfiguration ändern.
sudo ip tunnel change gre1 ttl 64ip tunnel del NAME — Ein Tunnel-Interface löschen.
sudo ip tunnel del gre1ip netns — Netzwerk-Namespaces
ip netns list — Alle benannten Netzwerk-Namespaces auflisten.
ip netns listip netns add NAME — Einen neuen Netzwerk-Namespace erstellen.
sudo ip netns add mynsip netns del NAME — Einen Netzwerk-Namespace löschen.
sudo ip netns del mynsip netns exec NAME COMMAND — Einen Befehl innerhalb eines Netzwerk-Namespaces ausführen.
sudo ip netns exec myns ip addr showip netns exec NAME bash — Eine Shell innerhalb eines Netzwerk-Namespaces öffnen.
sudo ip netns exec myns baship link set dev DEVICE netns NAME — Ein Interface in einen Netzwerk-Namespace verschieben.
sudo ip link set dev veth1 netns mynsip netns identify PID — Den Netzwerk-Namespace ermitteln, zu dem ein Prozess gehört.
ip netns identify 1234ip netns pids NAME — PIDs auflisten, die in einem Netzwerk-Namespace laufen.
ip netns pids mynsip -n NAME addr show — Kurzschreibweise für ip netns exec. Jeden ip-Unterbefehl in einem Namespace ausführen.
ip -n myns addr showip monitor — Ereignisse in Echtzeit
ip monitor — Alle Netzwerk-Ereignisse in Echtzeit beobachten (Adressen, Routen, Links, Neighbor).
ip monitorip monitor link — Nur Änderungen des Interface-Status beobachten.
ip monitor linkip monitor address — Nur Adressänderungen beobachten.
ip monitor addressip monitor route — Nur Änderungen der Routing-Tabelle beobachten.
ip monitor routeip monitor neigh — Nur Änderungen im Neighbor-Cache (ARP/NDP) beobachten.
ip monitor neighip monitor all — Ereignisse aus allen Teilsystemen beobachten.
ip monitor allip maddr & ip mroute — Multicast
ip maddr show — Multicast-Adressen aller Interfaces anzeigen.
ip maddr showip maddr show dev DEVICE — Multicast-Adressen eines bestimmten Interfaces anzeigen.
ip maddr show dev eth0ip maddr add MCAST_ADDR dev DEVICE — Einer Multicast-Gruppe auf einem Interface beitreten.
sudo ip maddr add 239.0.0.1 dev eth0ip maddr del MCAST_ADDR dev DEVICE — Eine Multicast-Gruppe verlassen.
sudo ip maddr del 239.0.0.1 dev eth0ip mroute show — Den Multicast-Routing-Cache anzeigen.
ip mroute showTypische Kombinationen & Muster
ip -br -c addr show — Kompakte, farbige Übersicht aller Interfaces und ihrer Adressen.
ip -br -c addr showip -4 -br addr show | grep -v DOWN — Nur aktive IPv4-Interfaces mit ihren Adressen anzeigen.
ip -4 -br addr show | grep -v DOWNip -j route show | jq '.[] | select(.dst=="default") | .gateway' — Standard-Gateway per JSON-Ausgabe und jq extrahieren.
ip -j route show | jq '.[] | select(.dst=="default") | .gateway'ip -o addr show | awk '/inet / {print $2, $4}' — Alle Interface-Namen mit ihren IPv4-Adressen auflisten.
ip -o addr show | awk '/inet / {print $2, $4}'ip -s -h link show dev DEVICE — Interface-Statistiken mit menschenlesbaren Byte-Angaben anzeigen.
ip -s -h link show dev eth0watch -n 1 ip -s link show dev DEVICE — Interface-Datenverkehr-Statistiken kontinuierlich überwachen.
watch -n 1 ip -s link show dev eth0ip addr show dev DEVICE | grep 'inet ' — Schneller Weg, nur die IPv4-Adresse eines Interfaces zu ermitteln.
ip addr show dev eth0 | grep 'inet 'ip route get 1.1.1.1 | awk '{print $7}' — Die lokale IP-Adresse ermitteln, über die das Internet erreichbar ist.
ip route get 1.1.1.1 | awk '{print $7}'Legacy-Befehlsäquivalente
ip addr show — Ersetzt: ifconfig (alle Interfaces und Adressen anzeigen).
# Legacy: ifconfig
ip addr showip link set dev DEVICE up/down — Ersetzt: ifconfig DEVICE up/down.
# Legacy: ifconfig eth0 up
sudo ip link set dev eth0 upip route show — Ersetzt: route -n (Routing-Tabelle anzeigen).
# Legacy: route -n
ip route showip route add default via GATEWAY — Ersetzt: route add default gw GATEWAY.
# Legacy: route add default gw 192.168.1.1
sudo ip route add default via 192.168.1.1ip neigh show — Ersetzt: arp -a (ARP-Cache anzeigen).
# Legacy: arp -a
ip neigh showip -s link show — Ersetzt: netstat -i (Interface-Statistiken).
# Legacy: netstat -i
ip -s link showip tunnel show — Ersetzt: iptunnel show.
# Legacy: iptunnel show
ip tunnel show Fazit
Das ip-Kommando ist heute die erste Anlaufstelle für jede Netzwerk-Diagnose und -Konfiguration unter Linux. Wer die Subkommandos link, addr, route und neigh beherrscht, kommt in der Praxis weit. Die JSON-Option -j in Kombination mit jq macht ip außerdem zu einem leistungsstarken Baustein für Automatisierungs-Skripte.
Weiterführende Links
- ip(8) – Manpage – alle Optionen im Überblick (englisch)
- iproute2 – Wikipedia – Hintergrund und Geschichte
- iproute2 – Projektseite – Quellcode und Release-Notes (englisch)