IP-Adresse herausfinden unter Linux

Auch unter Linux gibt es zwei Adressen: die lokale IP in deinem Netz und die öffentliche IP, die das Internet sieht. Den Unterschied erklärt der Artikel zu öffentlicher und privater IP. Alles Folgende funktioniert auf Ubuntu, Debian, Fedora, Arch und praktisch jeder anderen Distribution.

Kurzfassung: Öffne ein Terminal und führe ip a (oder hostname -I) für deine lokale Adresse aus, und curl ifconfig.me für die öffentliche. Deine öffentliche IPv4 und IPv6 zeigt auch unsere Startseite im Browser.

Öffentliche IP-Adresse (sofort)

Der einfachste Weg ist unsere Startseite im Browser. Sie zeigt deine öffentliche IPv4- und IPv6-Adresse sofort. Wer lieber die Kommandozeile nutzt, findet die Terminal-Methode weiter unten.

Lokale IP über das Terminal

Öffne ein Terminal und nutze die modernen Werkzeuge aus iproute2:

ip addr show
  • ip addr show (oder kurz ip a): lies die inet-Zeile unter deiner aktiven Schnittstelle, etwa eth0 oder wlan0.
  • hostname -I: gibt nur deine lokalen Adressen aus, durch Leerzeichen getrennt.
  • ip route get 1.1.1.1: zeigt, welche Schnittstelle und Quell-IP dein Verkehr tatsächlich nutzt.

Der ältere Befehl ifconfig funktioniert noch, wenn net-tools installiert ist, aber ip ist der aktuelle Standard.

Öffentliche IP über das Terminal

Ein kurzer Befehl fragt einen externen Dienst ab und gibt deine öffentliche Adresse aus:

curl ifconfig.me
  • curl -4 icanhazip.com: erzwingt IPv4, mit -6 geht IPv6.
  • dig +short myip.opendns.com @resolver1.opendns.com: eine Abfrage über DNS.

Lokale IP über den Desktop

Wenn du eine grafische Oberfläche wie GNOME nutzt:

  1. Öffne die Einstellungen.
  2. Wähle Netzwerk (Kabel) oder WLAN.
  3. Klicke auf das Zahnrad ⚙ neben deiner Verbindung, um die IPv4-Adresse zu sehen.

IPv6-Adresse unter Linux

Führe ip -6 addr aus, um nur IPv6-Adressen zu listen. Achte auf inet6-Zeilen mit scope global, das sind deine routbaren Adressen. Zeilen mit scope link (beginnend mit fe80::) gelten nur im lokalen Netzsegment.

Die meisten Distributionen aktivieren IPv6-Privacy-Extensions, deshalb siehst du üblicherweise eine feste Adresse plus eine oder mehrere mit dem Zusatz temporary. Die temporären wechseln regelmäßig und werden für ausgehende Verbindungen bevorzugt. Welche öffentliche IPv6 dein Verkehr zeigt, bestätigst du mit curl -6 icanhazip.com oder auf unserer Startseite.

Router-IP (Standardgateway) finden

Führe ip route | grep default aus. Die Adresse nach default via ist dein Router, meist 192.168.1.1 oder 192.168.0.1. Der Ratgeber Router-IP finden erklärt, was du damit machst.

Probleme mit falschen oder verwirrenden Adressen

Zu viele Schnittstellen. Läuft bei dir Docker oder eine VM, ist ip a voll virtueller Schnittstellen: docker0 (meist 172.17.0.1), veth…-Paare, br-…-Bridges und virbr0 von libvirt. Keine davon ist deine LAN-Adresse. Der zuverlässige Filter ist ip route get 1.1.1.1, das die Schnittstelle und src-Adresse deines echten Verkehrs zeigt.

hostname -I gibt mehrere Adressen aus. Es listet jede konfigurierte Adresse auf jeder Schnittstelle, samt der virtuellen Bridges und IPv6, in keiner sinnvollen Reihenfolge. Behandle es als schnellen Auszug, nicht als Antwort, und bestimme im Zweifel zuerst die aktive Schnittstelle.

Zwei Netzwerkmanager. Desktop-Distributionen verwalten Verbindungen meist mit NetworkManager (nmcli device show zeigt Adressen und Gateways pro Gerät), Server nutzen oft systemd-networkd (networkctl status). Wirkt das GNOME-Netzwerkfenster leer, wird deine Schnittstelle wahrscheinlich vom anderen Dienst verwaltet.

Häufige Fragen

Warum zeigt hostname -I mehrere IP-Adressen?
Es gibt jede Adresse auf jeder Schnittstelle aus: deine echte LAN-Adresse, Docker- und libvirt-Bridges wie 172.17.0.1 oder 192.168.122.1, VPN-Tunnel und IPv6. Die Adresse deines Internetverkehrs findest du mit ip route get 1.1.1.1 im Feld src.
Was ist die docker0-Schnittstelle in meiner ip-addr-Ausgabe?
docker0 ist eine virtuelle Bridge, die Docker für Container anlegt, meist mit der Adresse 172.17.0.1. Sie ist nicht deine LAN-Adresse, ebenso wenig veth-Paare oder virbr0 von libvirt. Ignoriere virtuelle Schnittstellen bei der Suche nach deiner echten IP.
Wie finde ich meine IPv6-Adresse unter Linux?
Führe ip -6 addr aus und achte auf inet6-Zeilen mit scope global, das sind die routbaren. fe80::-Adressen mit scope link gelten nur im lokalen Netz. Die öffentliche IPv6 zeigt curl -6 icanhazip.com.