Öffentliche IP unter Linux herausfinden (curl, wget, dig)

Your IPv4 Address

ISP:
City:
Country:

Your IPv6 Address

ISP:
City:
Country:
Kurz erklärt

Öffentliche IP mit einem Befehl herausfinden. Unter Linux oder macOS führen Sie aus:

curl -4 ip.getpublicip.com    # public IPv4
curl -6 ip.getpublicip.com    # public IPv6

Jeder Befehl gibt Ihre öffentliche IP zusammen mit Internetanbieter und Standort aus. Der Rest dieser Anleitung behandelt alle Varianten: wget, dig, IPv4/IPv6 erzwingen, Ausgabe ohne Zusatzinfos und das Herausfinden Ihrer lokalen IP. Stimmt Ihre öffentliche IP nicht mit der WAN-Adresse Ihres Routers überein, setzt Ihr Internetanbieter Carrier-Grade NAT (CGNAT) ein, das eingehende Verbindungen blockiert.

IP hinter CGNAT oder ändert sich ständig?

Holen Sie sich eine eigene öffentliche IPv4- und IPv6-Adresse, die Ihnen gehört und eingehende Verbindungen annimmt, über einen verschlüsselten Tunnel zu Ihrem Server geleitet.

Öffentliche IP holen

Öffentliche IP mit curl herausfinden

curl ist der gängigste Weg, Ihre öffentliche IP auf der Kommandozeile abzufragen. Es ist bei praktisch jeder Linux-Distribution dabei.

Grundlegende Verwendung

curl https://api.getpublicip.com/ip

Ausgabe (strukturiert, mit Internetanbieter und Standort):

IP Address: 203.0.113.42
ISP: Example ISP
City: Auckland
Country: New Zealand

Nur die reine IP-Adresse ohne weitere Angaben:

curl -s ifconfig.me

Ausgabe:

203.0.113.42

IPv4 oder IPv6 erzwingen

# Force IPv4
curl -4 ip.getpublicip.com

# Force IPv6
curl -6 ip.getpublicip.com

GetPublicIP bietet außerdem für jedes Protokoll einen eigenen Endpunkt:

curl https://ipv4.getpublicip.com/ip    # IPv4 only
curl https://ipv6.getpublicip.com/ip    # IPv6 only

Weitere Dienste, die mit curl funktionieren

curl ifconfig.me           # plain text IP
curl api.ipify.org         # plain text IP
curl icanhazip.com         # plain text IP
curl ifconfig.co           # plain text IP (also supports JSON)

Alle liefern Ihre öffentliche IP als reinen Text. Mit -s (Silent-Modus) unterdrücken Sie in Skripten die Fortschrittsanzeige.

Öffentliche IP mit wget herausfinden

wget ist auf den meisten Linux-Systemen vorhanden und wird oft dort verwendet, wo curl nicht installiert ist (ältere Minimalinstallationen, Embedded-Systeme).

Grundlegende Verwendung

wget -qO- https://api.getpublicip.com/ip

Die Option -q unterdrückt die Fortschrittsausgabe. Die Option -O- schreibt das Ergebnis auf stdout (das Terminal), statt es in einer Datei zu speichern.

Nur die reine IP-Adresse:

wget -qO- ifconfig.me

Ausgabe:

203.0.113.42

IPv4 oder IPv6 erzwingen

# Force IPv4
wget -4 -qO- ifconfig.me

# Force IPv6
wget -6 -qO- ifconfig.me

Eigene Endpunkte von GetPublicIP:

wget -qO- https://ipv4.getpublicip.com/ip    # IPv4 only
wget -qO- https://ipv6.getpublicip.com/ip    # IPv6 only

Weitere Dienste, die mit wget funktionieren

wget -qO- ifconfig.me
wget -qO- api.ipify.org
wget -qO- icanhazip.com
wget -qO- ifconfig.co

Öffentliche IP mit dig oder host herausfinden (DNS-Methode)

Wenn Sie keine HTTP-Anfrage stellen möchten, können Sie Ihre öffentliche IP auch per DNS abfragen. Dabei nutzen Sie, dass der DNS-Server die IP kennt, von der Ihre Anfrage kommt.

Mit dig (OpenDNS)

dig +short myip.opendns.com @resolver1.opendns.com

Ausgabe:

203.0.113.42

Mit dig (Google DNS)

dig TXT +short o-o.myaddr.l.google.com @ns1.google.com

Ausgabe (TXT-Eintrag in Anführungszeichen):

"203.0.113.42"

Mit host

host myip.opendns.com resolver1.opendns.com

Die Methoden mit dig und host brauchen keine HTTP-Anfrage, nur eine einzige DNS-Abfrage. Das ist praktisch in abgeschotteten Umgebungen, in denen ausgehendes HTTP eingeschränkt, DNS aber erlaubt ist.

IPv4 oder IPv6 erzwingen

Auf Dual-Stack-Anschlüssen (Ihr Rechner hat sowohl IPv4 als auch IPv6) kann der Standardbefehl je nach Betriebssystem und Reihenfolge der DNS-Auflösung die eine oder die andere Adresse liefern. Mit diesen Optionen erzwingen Sie ein bestimmtes Protokoll:

WerkzeugIPv4 erzwingenIPv6 erzwingen
curlcurl -4 ip.getpublicip.comcurl -6 ip.getpublicip.com
wgetwget -4 -qO- ifconfig.mewget -6 -qO- ifconfig.me
GetPublicIP-Endpunktcurl https://ipv4.getpublicip.com/ipcurl https://ipv6.getpublicip.com/ip

Die eigenen Endpunkte von GetPublicIP (ipv4. und ipv6.) sind bereits auf DNS-Ebene reine IPv4- bzw. IPv6-Adressen. Sie funktionieren deshalb auch, wenn Ihr Werkzeug die Optionen -4/-6 nicht kennt.

Alternative „Wie ist meine IP“-Dienste

Mehrere kostenlose Dienste zeigen Ihre öffentliche IP auf der Kommandozeile an. Ein kurzer Vergleich:

DienstURLNur IPv4Nur IPv6Ausgabeformat
GetPublicIPapi.getpublicip.com/ipipv4.getpublicip.com/ipipv6.getpublicip.com/ipStrukturiert (IP + Internetanbieter + Standort)
ifconfig.meifconfig.meOption curl -4 verwendenOption curl -6 verwendenIP als reiner Text
ipifyapi.ipify.orgapi.ipify.orgapi6.ipify.orgReiner Text (oder ?format=json)
icanhazip.comicanhazip.comipv4.icanhazip.comipv6.icanhazip.comIP als reiner Text
ifconfig.coifconfig.coOption curl -4 verwendenOption curl -6 verwendenReiner Text (oder JSON mit /json)

Alle funktionieren mit curl und wget. GetPublicIP liefert zusätzliche Angaben zur IP; die anderen geben eine einzige Zeile mit der reinen Adresse aus.

Wenn Sie zum Selbsthosten eine dauerhafte, eigene öffentliche IP-Adresse brauchen (statt nur Ihre aktuelle IP nachzusehen), lesen Sie unsere Anleitung zur festen IP-Adresse.

Lokale IP-Adresse unter Linux herausfinden

Ihre lokale (private) IP ist die Adresse, die Ihr Rechner in Ihrem LAN erhalten hat; von außen im Internet ist sie nicht sichtbar. So finden Sie sie heraus.

Schneller Einzeiler

hostname -I

Das gibt eine durch Leerzeichen getrennte Liste aller IP-Adressen des Rechners aus (IPv4 und IPv6, alle Schnittstellen). So sehen Sie am schnellsten alles auf einen Blick.

Ausführlich: Befehl ip (modern)

ip a

Die Ausgabe sieht etwa so aus:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: eno0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:94:37:b7:8a:88 brd ff:ff:ff:ff:ff:ff
    inet 192.168.66.245/24 brd 192.168.66.255 scope global dynamic noprefixroute eno0
       valid_lft 71625sec preferred_lft 71625sec
    inet6 fe80::767e:5882:2cdd:686e/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

Links stehen die Namen der Schnittstellen: lo (Loopback) und eno0 (Ethernet). WLAN-Adapter heißen meist wlan0.

  • link/ether: die MAC-Adresse (vom Hersteller vergebene Hardwarekennung).
  • inet: die IPv4-Adresse. In diesem Beispiel 192.168.66.245.
  • inet6: die IPv6-Adresse. Adressen, die mit fe80 beginnen, sind Link-Local-Adressen (außerhalb des LAN nicht routbar).

Nur IPv4- oder nur IPv6-Adressen anzeigen:

ip -4 a    # IPv4 only
ip -6 a    # IPv6 only

Ältere Linux-Systeme: ifconfig

Wenn Ihr System den Befehl ip nicht hat, verwenden Sie:

ifconfig

Die Ausgabe enthält ähnliche Informationen:

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)

eno0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.66.245  netmask 255.255.255.0  broadcast 192.168.66.255
        inet6 fe80::767e:5882:2cdd:686e  prefixlen 64  scopeid 0x20<link>
        ether 00:94:37:b7:8a:88  txqueuelen 1000  (Ethernet)

Die Zeile inet enthält die IPv4-Adresse, die Zeile inet6 die IPv6-Adresse.

NetworkManager (nmcli)

Auf Systemen mit NetworkManager (die meisten Desktop-Distributionen) können Sie auch Folgendes verwenden:

nmcli device show | grep IP4.ADDRESS

Das zeigt die IP-Adressen gruppiert nach Netzwerkschnittstelle (Ethernet, WLAN, VPN usw.).

Häufig gestellte Fragen

Wie finde ich unter Linux meine öffentliche IP-Adresse heraus?

Am schnellsten geht es mit curl https://api.getpublicip.com/ip oder curl ifconfig.me im Terminal. Beide geben Ihre öffentliche IPv4-Adresse auf stdout aus. Für IPv6 verwenden Sie curl -6 https://ipv6.getpublicip.com/ip. Dasselbe erreichen Sie auch mit wget, dig oder host.

Wie zeige ich meine öffentliche IP mit curl an?

Führen Sie curl https://api.getpublicip.com/ip aus, um Ihre öffentliche IP anzuzeigen. Mit -s läuft curl im Silent-Modus (ohne Fortschrittsanzeige). IPv4 erzwingen Sie mit curl -4, IPv6 mit curl -6. Alternative Dienste sind etwa curl ifconfig.me, curl api.ipify.org und curl icanhazip.com.

Wie zeige ich meine öffentliche IP mit wget an?

Mit wget -qO- https://api.getpublicip.com/ip geben Sie Ihre öffentliche IP auf stdout aus. Die Option -q unterdrückt die Fortschrittsausgabe, und -O- schreibt das Ergebnis auf stdout statt in eine Datei. IPv4 erzwingen Sie mit wget -4, IPv6 mit wget -6.

Wie erzwinge ich IPv4 oder IPv6 beim Abfragen meiner IP?

Sowohl curl als auch wget unterstützen die Optionen -4 (IPv4 erzwingen) und -6 (IPv6 erzwingen). So liefert curl -4 ip.getpublicip.com auch auf einem Dual-Stack-Anschluss immer Ihre IPv4-Adresse, und curl -6 ip.getpublicip.com Ihre IPv6-Adresse. GetPublicIP bietet außerdem eigene Endpunkte: ipv4.getpublicip.com und ipv6.getpublicip.com.

Welcher Einzeiler gibt nur meine IP aus, ohne weitere Ausgabe?

curl -s ifconfig.me gibt nur Ihre IP ohne zusätzliche Ausgabe aus. Mit wget verwenden Sie wget -qO- ifconfig.me, mit dig den Befehl dig +short myip.opendns.com @resolver1.opendns.com. Alle drei liefern eine einzige Zeile mit Ihrer öffentlichen IPv4-Adresse.

Welche Dienste eignen sich am besten, um die IP auf der Kommandozeile abzufragen?

Beliebte kostenlose Dienste sind api.getpublicip.com (liefert die IP mit Angaben zu Internetanbieter und Standort), ifconfig.me (IP als reiner Text), api.ipify.org (reiner Text, unterstützt JSON), icanhazip.com (reiner Text) und ifconfig.co (unterstützt JSON und reinen Text). Alle funktionieren mit curl und wget.

Wie finde ich meine öffentliche IP mit dig heraus?

Führen Sie dig +short myip.opendns.com @resolver1.opendns.com aus, um OpenDNS nach Ihrer öffentlichen IP zu fragen. Das Gegenstück für Google DNS ist dig TXT +short o-o.myaddr.l.google.com @ns1.google.com. Die dig-Methode braucht keine HTTP-Anfrage, nur eine DNS-Abfrage.

Was ist unter Linux der Unterschied zwischen öffentlicher und lokaler IP?

Ihre lokale (private) IP ist die Adresse, die Ihr Rechner im LAN erhalten hat, typischerweise im Bereich 192.168.x.x, 10.x.x.x oder 172.16-31.x.x. Ihre öffentliche (externe) IP ist die Adresse, die der Rest des Internets sieht, wenn Sie eine Verbindung aufbauen. Ihr Router übersetzt per NAT zwischen beiden. Lokale IPs zeigen Sie mit ip a oder hostname -I an, Ihre öffentliche IP mit curl ifconfig.me.

Wie liste ich alle lokalen IPs meines Rechners auf?

hostname -I liefert schnell eine durch Leerzeichen getrennte Liste aller zugewiesenen IPs. Eine ausführliche Ausgabe pro Schnittstelle erhalten Sie mit ip a (oder ip -4 a nur für IPv4, ip -6 a nur für IPv6). Auf älteren Systemen ohne den Befehl ip verwenden Sie ifconfig. Auf Systemen mit NetworkManager listet nmcli device show die IPs pro Schnittstelle auf.

Warum zeigt mein Router eine andere IP an als curl ifconfig.me?

Wenn die WAN-IP Ihres Routers nicht mit der Ausgabe von curl ifconfig.me übereinstimmt, setzt Ihr Internetanbieter mit ziemlicher Sicherheit Carrier-Grade NAT (CGNAT) ein. CGNAT schaltet eine zusätzliche NAT-Ebene zwischen Ihren Router und das öffentliche Internet und teilt eine öffentliche IP unter vielen Kunden auf. Das blockiert eingehende Verbindungen und macht Selbsthosten ohne Umweg unmöglich. Lösungen finden Sie in unserer ausführlichen Anleitung zum Selbsthosten hinter CGNAT.

Weitere Anleitungen

Anleitungen und Kategorien