Startseite » Blog » IP-Adresse unter Linux anzeigen: ip addr, hostname -I, curl
IP-Adresse unter Linux anzeigen: ip addr, hostname -I, curl
- 30. Oktober 2026
- 09:00
- Von Adrien Roche
- Netzwerke

IP-Adresse unter Linux mit ip addr prüfen
Der Befehl, der auf jeder aktuellen Linux-Distribution die Frage „Wie lautet meine IP-Adresse?" beantwortet, ist ip aus dem Paket iproute2. Er ist auf jeder großen Distribution standardmäßig vorhanden, funktioniert ohne root und ist das, was die übrigen Befehle dieses Leitfadens kapseln oder wodurch sie ersetzt wurden. Die Grundform listet jede Schnittstelle mit all ihren Adressen auf:
ip addr show
ip a # same thing, shorterAuf einem Server mit einer einzigen Netzwerkkarte sieht die Ausgabe so aus (die Zeilen mit der Lebensdauer valid_lft sind gekürzt):
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
inet 203.0.113.25/24 brd 203.0.113.255 scope global eth0
inet6 2001:db8:1::25/64 scope global
inet6 fe80::5054:ff:fe12:3456/64 scope linkSo lesen Sie sie:
- Name der Schnittstelle.
loist das Loopback, immer127.0.0.1, nur von der Maschine selbst erreichbar. Die echte Karte heißt hiereth0; mit vorhersagbaren Schnittstellennamen erscheint sie alsens3,enp0s3odereno1, und WLAN-Karten beginnen mitwl. inetist die IPv4-Adresse,inet6die IPv6. Das Suffix/24ist die Präfixlänge in CIDR-Notation, die moderne Schreibweise der Netzmaske255.255.255.0.scope globalbedeutet über diesen Host hinaus routbar;scope link(die Zeile mitfe80::) gilt nur im angeschlossenen Netzsegment;scope hostist Loopback.state UPzusammen mitLOWER_UPbedeutet, dass die Schnittstelle aktiviert ist und Link hat.state DOWNoderNO-CARRIERist der übliche Grund dafür, dass eine Schnittstelle überhaupt keine Adresse hat.
Nützliche Varianten:
ip -4 addr # IPv4 only
ip -6 addr # IPv6 only
ip -br -4 addr # one line per interface
ip -4 addr show dev eth0 # a single interfaceDie Kurzform (-br) ist der schnellste Weg, um unter Linux eine IP-Adresse zu prüfen, wenn mehrere Schnittstellen existieren (der Normalfall auf einem VPS, auf dem Docker läuft):
$ ip -br -4 addr
lo UNKNOWN 127.0.0.1/8
eth0 UP 203.0.113.25/24
docker0 DOWN 172.17.0.1/16hostname -I: nur die Adressen
Wenn Sie lediglich die Adressen brauchen, gibt hostname -I (großes I) jede konfigurierte Adresse in einer Zeile aus, durch Leerzeichen getrennt, ohne Loopback und ohne IPv6-Link-Local:
$ hostname -I
203.0.113.25 2001:db8:1::25Zwei Einschränkungen. Das kleingeschriebene hostname -i ist ein anderer Befehl: Er löst den Hostnamen der Maschine über /etc/hosts und DNS auf, was unter Debian und Ubuntu meist 127.0.1.1 ergibt. Und hostname -I gibt die Adressen in keiner garantierten Reihenfolge aus, virtuelle Bridges wie docker0 eingeschlossen, sodass hostname -I | awk '{print $1}' eine Abkürzung für Menschen ist, keine verlässliche „primäre IP" für Skripte. Die Option ist nicht POSIX: Debian, Ubuntu, Fedora und RHEL haben sie, minimale BusyBox-Images wie Alpine womöglich nicht.
ifconfig, nmcli und networkctl
ifconfig (veraltet, net-tools)
ifconfig ist das, was ältere Tutorials zeigen. Es gehört zu net-tools, seit Jahren zugunsten von iproute2 abgekündigt und in der Standardinstallation aktueller Ubuntu-, Debian- und Fedora/RHEL-Versionen nicht mehr enthalten. Wenn es command not found zurückgibt, wechseln Sie zu ip oder installieren Sie das Paket:
sudo apt install net-tools # Debian / Ubuntu
sudo dnf install net-tools # Fedora / RHEL / Rocky / Alma$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 203.0.113.25 netmask 255.255.255.0 broadcast 203.0.113.255
inet6 fe80::5054:ff:fe12:3456 prefixlen 64 scopeid 0x20<link>Gut lesbar, aber mit einer echten Einschränkung: ifconfig zeigt nur eine IPv4-Adresse pro Schnittstelle. Sekundäre Adressen, die mit ip addr add hinzugefügt wurden (auf einem VPS mit mehreren öffentlichen IPs üblich), bleiben für es unsichtbar.
nmcli und networkctl
Desktops und Server der Fedora/RHEL-Familie verwalten ihr Netzwerk mit NetworkManager; Ubuntu Server nutzt netplan auf Basis von systemd-networkd, und viele VPS-Images folgen demselben Modell. Jedes bringt ein Statuswerkzeug mit, das Adresse, Gateway und DNS in einem Block anzeigt:
nmcli device show eth0
nmcli -g IP4.ADDRESS device show eth0 # NetworkManager: just the address field
networkctl status eth0 # systemd-networkdDer Schalter -g (--get-values) gibt den reinen Wert eines Feldes aus, Präfixlänge inklusive, was für Skripte praktisch ist. Wenn Sie nicht sicher sind, welcher Stack auf Ihrer Maschine läuft oder um welche Distribution und Version es sich überhaupt handelt, ermitteln Sie zuerst die OS-Version über die Kommandozeile; die Antwort entscheidet, welches Werkzeug vorhanden ist.
Öffentliche IP-Adresse mit curl herausfinden
Alles Bisherige meldet die auf der Schnittstelle konfigurierte Adresse. Auf den meisten VPS ist die öffentliche IPv4 direkt der Schnittstelle zugewiesen, also ist sie zugleich das, was das Internet sieht. Zu Hause, im Büro oder in manchen Clouds trägt die Schnittstelle eine private Adresse aus den RFC-1918-Bereichen (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), und ein Router oder ein 1:1-NAT übersetzt sie auf dem Weg nach außen. Der einzige verlässliche Weg, die öffentliche Seite zu sehen, ist ein externer Dienst:
curl -4 icanhazip.com
curl -4 ifconfig.me/ip
curl -4 https://api.ipify.org
curl -6 icanhazip.com # public IPv6, if the host has oneDie Schalter -4 und -6 erzwingen die Adressfamilie, was auf Dual-Stack-Hosts wichtig ist: Ohne sie bevorzugt curl womöglich IPv6 und liefert eine Adresse, die Sie nicht erwartet haben. icanhazip.com wird seit 2021 von Cloudflare betrieben und antwortet in reinem Text. Lesen Sie die Antwort als „die Adresse, von der mein Datenverkehr ausgeht": hinter einem VPN oder einem Proxy ist es die Adresse des Exit-Knotens, nicht die Ihres Providers.
IPv6: global gegenüber Link-Local
Fast jede Linux-Schnittstelle zeigt mindestens eine inet6-Zeile, und sie wird oft für eine öffentliche IPv6-Adresse gehalten. Die Zeile, die mit fe80:: beginnt und mit scope link gekennzeichnet ist, ist Link-Local: Jede Schnittstelle erzeugt automatisch eine, sie gilt nur im angeschlossenen Netz und ist niemals aus dem Internet erreichbar. Eine öffentliche IPv6-Adresse trägt scope global und beginnt mit einer 2 oder einer 3, da der globale Unicast-Bereich 2000::/3 ist.
ip -6 addr show scope global
ip -6 route show defaultGibt der erste Befehl nichts aus, hat die Maschine kein routbares IPv6 und curl -6 schlägt fehl. Zusätzliche globale Adressen, die auf einem Desktop als temporary markiert sind, stammen von den Privacy Extensions; Server lassen diese abgeschaltet, damit die Adresse für DNS und Firewall-Regeln stabil bleibt.
Standard-Gateway, Route und DNS
Eine Adresse allein sagt nichts darüber aus, ob die Maschine irgendetwas erreichen kann. Die Routing-Tabelle tut das, und ip route (Kurzform ip r) gibt sie aus:
$ ip route
default via 203.0.113.1 dev eth0 proto static
203.0.113.0/24 dev eth0 proto kernel scope link src 203.0.113.25Die Zeile default via ist das Standard-Gateway, der Router, den jedes Paket nutzt, wenn keine spezifischere Route passt. Die zweite Zeile wurde vom Kernel bei der Konfiguration der Adresse hinzugefügt; ihr Feld src ist die Adresse, die der Host in diesem Netz als Quelle bevorzugt. Der nützlichste Kniff baut darauf auf: Fragen Sie den Kernel, welche Adresse er für ein bestimmtes Ziel verwenden würde.
$ ip route get 1.1.1.1
1.1.1.1 via 203.0.113.1 dev eth0 src 203.0.113.25 uid 1000
cacheDieser src-Wert ist per Definition die ausgehende Adresse der Maschine Richtung Internet, ganz gleich welche Schnittstellen, Bridges oder Tunnel existieren. Für DNS ist /etc/resolv.conf weiterhin die richtige Anlaufstelle, aber auf Systemen mit systemd-resolved (Ubuntu seit 18.04, aktuelles Fedora) enthält sie nur den lokalen Stub 127.0.0.53; die echten Upstream-Resolver zeigt resolvectl status oder, auf NetworkManager-Hosts, die Felder IP4.DNS von nmcli device show.
Skripting: die IP-Adresse in eine Variable schreiben
Interaktive Ausgaben sind für Menschen gemacht; ein Skript braucht eine Adresse ohne Beiwerk. Diese Muster halten stand, vom einfachsten bis zum robustesten:
# One interface, IPv4, prefix length stripped
IP=$(ip -4 -o addr show dev eth0 | awk '{print $4}' | cut -d/ -f1)
# Robust: the source address used to reach the internet
IP=$(ip route get 1.1.1.1 | awk '{for (i=1; i<=NF; i++) if ($i == "src") {print $(i+1); exit}}')
# Same thing with JSON output and jq
IP=$(ip -j route get 1.1.1.1 | jq -r '.[0].prefsrc')
# Public IP, with a timeout so the script never hangs offline
PUBLIC_IP=$(curl -4 -s --max-time 5 https://icanhazip.com)Der Schalter -o lässt ip eine Adresse pro Zeile ausgeben, was die Feldpositionen für awk zuverlässig hält; ergänzen Sie head -n 1, falls die Schnittstelle mehrere IPv4-Adressen trägt. Der Schalter -j schaltet ip auf JSON-Ausgabe um, und jq greift die Felder dann über ihren Namen ab. Bevorzugen Sie diese Form überall dort, wo etwas auf mehr als einer Maschine läuft: Schnittstellennamen unterscheiden sich von Host zu Host, Feldnamen nicht.
| Befehl | Was er zeigt | Am besten geeignet für |
|---|---|---|
ip addr / ip -br -4 addr | Jede Schnittstelle, alle Adressen, Status | Täglicher Einsatz, das Gesamtbild |
hostname -I | Alle Adressen in einer Zeile | Ein schneller Blick |
ip route get 1.1.1.1 | Quelladresse Richtung Internet | Skripte, Hosts mit mehreren Schnittstellen |
ifconfig | Eine IPv4 pro Schnittstelle (veraltet) | Altsysteme, alte Tutorials |
curl -4 icanhazip.com | Öffentliche IPv4, wie das Internet sie sieht | NAT, VPN, Bestätigung einer VPS-Adresse |
Was sich auf einem VPS ändert
Auf einem VPS mit dedizierter IPv4 sollten ip -4 addr, hostname -I und curl -4 icanhazip.com alle dieselbe Adresse liefern, weil die öffentliche IP ohne NAT dazwischen direkt auf der Schnittstelle konfiguriert ist. Weichen sie voneinander ab, liegt etwas dazwischen: ein NAT auf Providerseite, ein vergessener VPN-Client oder eine Docker-Bridge, die sich den ersten Platz in hostname -I geschnappt hat.
Sobald die Adresse bestätigt ist, prüfen Sie zwei Dinge. Erstens, ob sie tatsächlich erreichbar ist und über welche Ports (eine andere Frage als die, ob sie konfiguriert ist): prüfen Sie die offenen Ports Ihres Linux-Servers von innen mit ss -tulpn und von außen mit nmap. Zweitens das Reverse DNS. Schlagen Sie den PTR-Eintrag Ihrer Adresse nach:
dig -x 203.0.113.25 +shortEin frischer VPS antwortet meist mit einem generischen Providernamen oder gar nicht. Wenn der Server Mails versendet oder einen öffentlichen Dienst bereitstellt, setzen Sie Hostnamen und Reverse DNS so, dass sie übereinstimmen; besonders ausgehende Mails werden regelmäßig abgelehnt, wenn PTR-Eintrag und HELO-Name nicht zusammenpassen.
Diese Befehle werden am schnellsten zum Reflex auf einem Server, dessen Adresse allein Ihnen gehört und sich nicht ändert. Ein Linux VPS von rdp.monster kommt mit einer dedizierten IPv4, vollem Root-Zugriff, dedizierter CPU und RAM, unlimitierter Bandbreite (Fair Use) und ohne KYC, Krypto wird akzeptiert, ab 8,99 $/Monat. Der Server ist etwa 10 Sekunden nach Bestätigung der Zahlung online, das erste ip -br -4 addr darauf ist also nur einen Augenblick entfernt.
Häufig gestellte Fragen
Warum zeigt hostname -I mehr als eine IP-Adresse an?
hostname -I gibt alle Adressen aller Schnittstellen aus, außer Loopback und IPv6-Link-Local, sodass eine Maschine mit Docker, libvirt, einem VPN-Client oder einer zweiten Netzwerkkarte mehrere anzeigt. docker0 steuert 172.17.0.1 bei, virbr0 typischerweise 192.168.122.1, und ein Dual-Stack-Host ergänzt seine globale IPv6-Adresse. Die Reihenfolge ist nicht garantiert. Wenn Sie die Adresse brauchen, von der Ihr Datenverkehr wirklich ausgeht, führen Sie ip route get 1.1.1.1 aus und lesen Sie stattdessen dessen Feld src.Warum meldet ifconfig unter Ubuntu command not found?
ifconfig ist Teil des Pakets net-tools, das zugunsten von iproute2 abgekündigt wurde und in der Standardinstallation aktueller Ubuntu-, Debian- und Fedora/RHEL-Versionen fehlt. Der Ersatz ist ip addr, das überall verfügbar ist. Falls ein Skript oder eine alte Gewohnheit es wirklich verlangt, installieren Sie das Paket mit sudo apt install net-tools oder sudo dnf install net-tools, im Bewusstsein, dass ifconfig nur eine IPv4 pro Schnittstelle zeigt und mit ip addr add hinzugefügte sekundäre Adressen verbirgt.Warum liefert hostname -i die Adresse 127.0.1.1?
hostname -i sieht sich das Netzwerk überhaupt nicht an: Es löst den Hostnamen des Systems so auf, wie jede Anwendung es täte, über /etc/hosts und danach DNS. Die Installer von Debian und Ubuntu fügen eine Zeile hinzu, die den Hostnamen auf 127.0.1.1 abbildet, damit die Maschine ihren eigenen Namen ohne Netzwerk auflösen kann — und genau diese Zeile kommt zurück. Verwenden Sie die Form mit großem I, hostname -I, die die echten Schnittstellenadressen liest, oder ip -4 addr für alle Details.Wie finde ich die IP-Adressen anderer Geräte in meinem Netzwerk?
ip neigh show anzeigt (oder arp -a, wenn net-tools installiert ist). Für ein vollständiges Bild scannen Sie das Subnetz per Ping-Sweep: nmap -sn 192.168.1.0/24 listet jeden antwortenden Host auf, mit Namen, sofern Reverse DNS sie liefert. Setzen Sie Ihr eigenes Netz ein, das Sie an der Route mit scope link in ip route ablesen können. Auf einem VPS ist das selten nützlich, und das Scannen benachbarter Adressen kann gegen die Bedingungen Ihres Providers verstoßen.Adrien Roche, Redakteur für Infrastruktur & Hosting
Systemingenieur mit über 10 Jahren Erfahrung im Betrieb von Windows-Server- und Linux-Flotten. Adrien pflegt die Infrastruktur-Dokumentation von rdp.monster und schreibt unsere Guides zu RDP, VPS-Hosting, Serveradministration, Netzwerken und Privacy-Tools.
Verwandte Artikel




