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 show

ip -6 ... — Ausgabe auf IPv6 beschränken.

ip -6 addr show

ip -br ... — Kompaktes Ausgabeformat. Kurz und gut lesbar.

ip -br addr show

ip -c ... — Farbige Ausgabe für bessere Übersichtlichkeit.

ip -c addr show

ip -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 eth0

ip -d ... — Detaillierte/erweiterte Informationen anzeigen.

ip -d link show

ip -h ... — Menschenlesbare Ausgabe mit Einheitensuffixen (KB, MB, GB).

ip -h -s link show

ip -o ... — Einzeilige Ausgabe pro Datensatz. Praktisch für die Verarbeitung mit grep/awk.

ip -o addr show | awk '{print $2, $4}'

ip link show — Alle Netzwerk-Interfaces mit Status und MAC-Adresse auflisten.

ip link show

ip link show dev DEVICE — Details eines bestimmten Interfaces anzeigen.

ip link show dev eth0

ip link set dev DEVICE up — Ein Interface aktivieren (hochfahren).

sudo ip link set dev eth0 up

ip link set dev DEVICE down — Ein Interface deaktivieren (herunterfahren).

sudo ip link set dev eth0 down

ip link set dev DEVICE mtu MTU — Die Maximum Transmission Unit eines Interfaces setzen.

sudo ip link set dev eth0 mtu 9000

ip link set dev DEVICE address MAC — Die MAC-Adresse eines Interfaces ändern.

sudo ip link set dev eth0 address 02:42:ac:11:00:02

ip link set dev DEVICE name NEWNAME — Ein Interface umbenennen (muss vorher deaktiviert sein).

sudo ip link set dev eth0 name lan0

ip link set dev DEVICE promisc on — Promiscuous-Modus für ein Interface aktivieren.

sudo ip link set dev eth0 promisc on

ip link set dev DEVICE txqueuelen N — Die Sendewarteschlangenlänge setzen.

sudo ip link set dev eth0 txqueuelen 5000

ip link set dev DEVICE multicast on|off — Multicast auf einem Interface aktivieren oder deaktivieren.

sudo ip link set dev eth0 multicast on

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 veth1

ip link add NAME type bridge — Eine Netzwerk-Bridge erstellen.

sudo ip link add br0 type bridge

ip link set dev DEVICE master BRIDGE — Ein Interface zu einer Bridge hinzufügen.

sudo ip link set dev eth0 master br0

ip link set dev DEVICE nomaster — Ein Interface aus einer Bridge entfernen.

sudo ip link set dev eth0 nomaster

ip link add NAME type dummy — Ein Dummy-Interface erstellen (nützlich für Tests oder als Loopback).

sudo ip link add dummy0 type dummy

ip 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 100

ip 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 bridge

ip link delete NAME — Ein virtuelles Interface löschen.

sudo ip link delete br0

ip addr — IP-Adressen

ip addr show — Alle IP-Adressen aller Interfaces anzeigen. Kurzform: ip a.

ip addr show

ip addr show dev DEVICE — IP-Adressen eines bestimmten Interfaces anzeigen.

ip addr show dev eth0

ip addr show scope global — Nur globale Adressen anzeigen (ohne Link-Local oder Loopback).

ip addr show scope global

ip addr show dynamic — Nur dynamisch zugewiesene Adressen anzeigen (DHCP, SLAAC).

ip addr show dynamic

ip addr show permanent — Nur statisch konfigurierte Adressen anzeigen.

ip addr show permanent

ip addr add ADDRESS/PREFIX dev DEVICE — Eine IP-Adresse zu einem Interface hinzufügen.

sudo ip addr add 192.168.1.100/24 dev eth0

ip 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:1

ip 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 eth0

ip addr del ADDRESS/PREFIX dev DEVICE — Eine IP-Adresse von einem Interface entfernen.

sudo ip addr del 192.168.1.100/24 dev eth0

ip addr flush dev DEVICE — Alle Adressen eines Interfaces entfernen.

sudo ip addr flush dev eth0

ip 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 eth0

ip route — Routing-Tabelle

ip route show — Die Haupt-Routing-Tabelle anzeigen. Kurzform: ip r.

ip route show

ip route show table TABLE — Eine bestimmte Routing-Tabelle anzeigen (main, local, default oder benutzerdefinierter Name/Nummer).

ip route show table local

ip route show table all — Routen aus allen Routing-Tabellen anzeigen.

ip route show table all

ip route get ADDRESS — Die Route abfragen, die der Kernel für eine bestimmte Adresse verwenden würde.

ip route get 8.8.8.8

ip 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.100

ip 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.1

ip 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 eth0

ip route add default via GATEWAY — Das Standard-Gateway setzen.

sudo ip route add default via 192.168.1.1

ip 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 eth0

ip 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 100

ip route change NETWORK/PREFIX via GATEWAY — Eine vorhandene Route ändern.

sudo ip route change default via 192.168.1.254

ip 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.1

ip route del NETWORK/PREFIX — Eine Route löschen.

sudo ip route del 10.0.0.0/8

ip route flush table main — Alle Routen aus der Haupt-Routing-Tabelle entfernen.

sudo ip route flush table main

ip 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/24

ip 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/24

ip 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/24

ip 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 2

ip 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.100

ip 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 1400

ip 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 100

ip route save > FILE — Die aktuelle Routing-Tabelle in eine Binärdatei speichern.

ip route save > routes.bin

ip route restore < FILE — Routen aus einer zuvor gespeicherten Datei wiederherstellen.

sudo ip route restore < routes.bin

ip neigh — ARP / Neighbor-Cache

ip neigh show — Den ARP/NDP-Neighbor-Cache anzeigen (MAC ↔ IP-Zuordnungen). Kurzform: ip n.

ip neigh show

ip neigh show dev DEVICE — Neighbor-Einträge eines bestimmten Interfaces anzeigen.

ip neigh show dev eth0

ip neigh show nud STATE — Neighbor nach Status filtern: reachable, stale, failed, permanent, noarp, incomplete, delay, probe.

ip neigh show nud reachable

ip 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 eth0

ip 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 eth0

ip 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 permanent

ip neigh del ADDRESS dev DEVICE — Einen Neighbor-Eintrag löschen.

sudo ip neigh del 192.168.1.1 dev eth0

ip neigh flush dev DEVICE — Den Neighbor-Cache eines Interfaces leeren.

sudo ip neigh flush dev eth0

ip neigh flush all — Den gesamten Neighbor-Cache leeren.

sudo ip neigh flush all

ip rule — Policy-Routing

ip rule show — Alle Policy-Routing-Regeln anzeigen.

ip rule show

ip 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 100

ip 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 200

ip 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 100

ip rule add fwmark MARK table TABLE — Pakete mit einem bestimmten Firewall-Mark über eine benutzerdefinierte Tabelle leiten.

sudo ip rule add fwmark 1 table 100

ip 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 100

ip rule del RULE — Eine Policy-Routing-Regel löschen.

sudo ip rule del from 10.0.0.0/8 table 100

ip rule flush — Alle Policy-Routing-Regeln entfernen.

sudo ip rule flush

ip tunnel — IP-Tunnel

ip tunnel show — Alle konfigurierten IP-Tunnel anzeigen.

ip tunnel show

ip 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.1

ip 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.1

ip 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.1

ip tunnel change NAME ... — Eine vorhandene Tunnel-Konfiguration ändern.

sudo ip tunnel change gre1 ttl 64

ip tunnel del NAME — Ein Tunnel-Interface löschen.

sudo ip tunnel del gre1

ip netns — Netzwerk-Namespaces

ip netns list — Alle benannten Netzwerk-Namespaces auflisten.

ip netns list

ip netns add NAME — Einen neuen Netzwerk-Namespace erstellen.

sudo ip netns add myns

ip netns del NAME — Einen Netzwerk-Namespace löschen.

sudo ip netns del myns

ip netns exec NAME COMMAND — Einen Befehl innerhalb eines Netzwerk-Namespaces ausführen.

sudo ip netns exec myns ip addr show

ip netns exec NAME bash — Eine Shell innerhalb eines Netzwerk-Namespaces öffnen.

sudo ip netns exec myns bash

ip link set dev DEVICE netns NAME — Ein Interface in einen Netzwerk-Namespace verschieben.

sudo ip link set dev veth1 netns myns

ip netns identify PID — Den Netzwerk-Namespace ermitteln, zu dem ein Prozess gehört.

ip netns identify 1234

ip netns pids NAME — PIDs auflisten, die in einem Netzwerk-Namespace laufen.

ip netns pids myns

ip -n NAME addr show — Kurzschreibweise für ip netns exec. Jeden ip-Unterbefehl in einem Namespace ausführen.

ip -n myns addr show

ip monitor — Ereignisse in Echtzeit

ip monitor — Alle Netzwerk-Ereignisse in Echtzeit beobachten (Adressen, Routen, Links, Neighbor).

ip monitor

ip monitor link — Nur Änderungen des Interface-Status beobachten.

ip monitor link

ip monitor address — Nur Adressänderungen beobachten.

ip monitor address

ip monitor route — Nur Änderungen der Routing-Tabelle beobachten.

ip monitor route

ip monitor neigh — Nur Änderungen im Neighbor-Cache (ARP/NDP) beobachten.

ip monitor neigh

ip monitor all — Ereignisse aus allen Teilsystemen beobachten.

ip monitor all

ip maddr & ip mroute — Multicast

ip maddr show — Multicast-Adressen aller Interfaces anzeigen.

ip maddr show

ip maddr show dev DEVICE — Multicast-Adressen eines bestimmten Interfaces anzeigen.

ip maddr show dev eth0

ip maddr add MCAST_ADDR dev DEVICE — Einer Multicast-Gruppe auf einem Interface beitreten.

sudo ip maddr add 239.0.0.1 dev eth0

ip maddr del MCAST_ADDR dev DEVICE — Eine Multicast-Gruppe verlassen.

sudo ip maddr del 239.0.0.1 dev eth0

ip mroute show — Den Multicast-Routing-Cache anzeigen.

ip mroute show

Typische Kombinationen & Muster

ip -br -c addr show — Kompakte, farbige Übersicht aller Interfaces und ihrer Adressen.

ip -br -c addr show

ip -4 -br addr show | grep -v DOWN — Nur aktive IPv4-Interfaces mit ihren Adressen anzeigen.

ip -4 -br addr show | grep -v DOWN

ip -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 eth0

watch -n 1 ip -s link show dev DEVICE — Interface-Datenverkehr-Statistiken kontinuierlich überwachen.

watch -n 1 ip -s link show dev eth0

ip 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 show

ip link set dev DEVICE up/down — Ersetzt: ifconfig DEVICE up/down.

# Legacy: ifconfig eth0 up
sudo ip link set dev eth0 up

ip route show — Ersetzt: route -n (Routing-Tabelle anzeigen).

# Legacy: route -n
ip route show

ip 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.1

ip neigh show — Ersetzt: arp -a (ARP-Cache anzeigen).

# Legacy: arp -a
ip neigh show

ip -s link show — Ersetzt: netstat -i (Interface-Statistiken).

# Legacy: netstat -i
ip -s link show

ip 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.

Verwandte Kommandos

  • ss – Socket-Statistiken: offene Verbindungen und Ports auflisten
  • netstat – klassische Netzwerk-Statistiken (Legacy, aber weit verbreitet)
  • ethtool – Hardware-Eigenschaften und Treiber-Einstellungen von Netzwerk-Interfaces abfragen