Konfiguration von IPv6 auf VPS- und dedizierten Servern
Niveau: Anfänger / Fortgeschritten
Geschätzte Dauer: ca. 30 Minuten
Ziel: IPv6-Netzwerk auf einem Dedicated Server oder VPS aktivieren und einrichten, sodass der Server über IPv6 erreichbar ist und alle Netzwerkdienste mit der neuen Adresse korrekt funktionieren.
Einführung
Ihrem INTROSERV-Server ist wahrscheinlich bereits eine IPv6-Adresse zugewiesen – sie ist nur noch nicht konfiguriert. In dieser Anleitung zur IPv6-Einrichtung auf einem VPS aktivieren Sie IPv6 auf einem Linux-Server, weisen eine statische IPv6-Adresse zu, konfigurieren das IPv6-Gateway unter Linux und überprüfen die Konnektivität. Die Anleitung behandelt Ubuntu (Netplan), Debian (/etc/network/interfaces) und AlmaLinux (nmcli).
Was ist IPv6?
IPv6 (Internet Protocol Version 6) ist die aktuelle Generation des Internetprotokolls und soll IPv4 ablösen. Die wichtigsten praktischen Unterschiede für Serveradministratoren:
- Eine IPv6-Adresse ist 128 Bit lang und wird als acht durch Doppelpunkte getrennte Gruppen aus je vier Hexadezimalziffern geschrieben:
2001:db8:85a3::8a2e:370:7334. - Eine Global Unicast Address (GUA) ist das IPv6-Äquivalent einer öffentlichen IPv4-Adresse und im Internet routbar. Ihrem VPS wird eine solche Adresse zugewiesen.
- Eine Link-Local-Adresse wird automatisch jeder IPv6-fähigen Schnittstelle zugewiesen (Präfix
fe80::/10). Sie ist über das lokale Segment hinaus nicht routbar, wird aber für die Neighbor Discovery und Routing-Protokolle benötigt. - Ein Subnetz (IPv6-Präfix) legt fest, welcher Teil der Adresse das Netzwerk identifiziert. Bei einem typischen VPS sehen Sie ein Präfix von
/64oder/128. - Das Standard-Gateway (IPv6) ist der Router, an den Ihr Server Pakete sendet, wenn das Ziel nicht im lokalen Netz liegt. Diese Adresse erhalten Sie von Ihrem Anbieter.
Voraussetzungen
Stellen Sie vor dem Start sicher, dass die folgenden Bedingungen erfüllt sind:
- Betriebssystem: Ubuntu 20.04/22.04/24.04 LTS, Debian 11/12/13 oder AlmaLinux/RHEL 8/9/10
- Zugriff: sudo- oder Root-Zugriff auf den Server per SSH
- IPv6-Zuteilung: Eine IPv6-Adresse, ein Subnetzpräfix und ein Standard-Gateway von Ihrem Hosting-Anbieter. Diese finden Sie vor dem Start in Ihrem Kundenbereich.
- Erforderliche Kenntnisse: Sicherer Umgang mit der Linux-Kommandozeile und grundlegende Bearbeitung von Konfigurationsdateien
Bei INTROSERV finden Sie Ihre zugewiesene IPv6-Adresse, das Präfix und das Gateway im Client Area: Öffnen Sie Ihren Dienst und wechseln Sie dann zum Tab Network oder IP Addresses. INTROSERV-VPS-Tarife erhalten in der Regel ein /112-Präfix, Dedicated Server ein /64-Präfix. Wenn keine IPv6-Adresse aufgeführt ist, wenden Sie sich an den INTROSERV-Support, um eine Zuteilung anzufordern.
Schritt 1: Aktuellen IPv6-Status prüfen
Prüfen Sie zunächst, was der Kernel bereits kennt, bevor Sie Änderungen an der Konfiguration vornehmen.
Ausführen:
ip -6 addr show
Erwartete Ausgabe auf einem Server, auf dem noch keine IPv6-Konfiguration angewendet wurde:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP inet6 fe80::250:56ff:fe00:1/64 scope link valid_lft forever preferred_lft forever
Die Adresse fe80:: ist die Link-Local-Adresse. Sie wird unabhängig von der Konfiguration automatisch vom Kernel zugewiesen. Fehlt ein Eintrag mit scope global, ist noch keine Global Unicast Address konfiguriert.
Prüfen Sie außerdem, ob IPv6 im Kernel aktiviert ist:
sudo sysctl net.ipv6.conf.all.disable_ipv6
Unter Debian 13 enthält der $PATH normaler Benutzer nicht /usr/sbin. Daher gibt sysctl ohne sudo die Meldung command not found aus. Außerdem enthält eine minimale Debian-13-Installation standardmäßig kein sudo. Wechseln Sie zum Root-Benutzer (su -), installieren Sie sudo (apt install sudo) und fügen Sie Ihren Benutzer der Gruppe sudoers hinzu, bevor Sie fortfahren.
Erwartete Ausgabe:
net.ipv6.conf.all.disable_ipv6 = 0
Der Wert 0 bedeutet, dass IPv6 aktiviert ist. Bei 1 wurde IPv6 auf Kernel-Ebene deaktiviert.
So aktivieren Sie es vorübergehend wieder:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
Um die Änderung dauerhaft zu machen, suchen Sie in /etc/sysctl.conf oder in Dateien unter /etc/sysctl.d/ nach der Zeile net.ipv6.conf.all.disable_ipv6 = 1, entfernen Sie sie oder kommentieren Sie sie aus und führen Sie dann Folgendes aus:
sudo sysctl -p
Schritt 2: Schnittstellennamen ermitteln
Sie benötigen den genauen Namen Ihrer öffentlichen Netzwerkschnittstelle, bevor Sie eine Konfigurationsdatei bearbeiten.
Ausführen:
ip -br link
Erwartete Ausgabe:
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP> eth0 UP 00:50:56:00:00:01 <BROADCAST,MULTICAST,UP,LOWER_UP>
Die Schnittstelle im Status UP mit einer MAC-Adresse ist Ihre primäre Schnittstelle. Gängige Namen sind eth0, ens3, ens18, ens33, ens160 (häufig unter VMware und bei modernen Kerneln) sowie ähnliche Varianten wie ensXX/enpXsX. Verwenden Sie in allen folgenden Konfigurationsschritten exakt den Namen, den ip -br link anzeigt.
Schritt 3: Statische IPv6-Adresse konfigurieren
Die Konfigurationsmethode hängt von Ihrer Distribution ab. Ubuntu ab Version 18.04 verwendet Netplan, Debian standardmäßig /etc/network/interfaces, AlmaLinux verwendet NetworkManager oder Schnittstellenskripte unter /etc/sysconfig/network-scripts/.
Halten Sie vor dem Fortfahren die folgenden Werte aus dem Kundenbereich Ihres Anbieters bereit:
| Feld | Beispiel |
|---|---|
| IPv6-Adresse | 2001:db8:1000::10 |
| Präfixlänge | 64 |
| Standard-Gateway (IPv6) | 2001:db8:1000::1 |
Ersetzen Sie diese Beispielwerte in allen folgenden Schritten durch Ihre echten Werte.
3.1 Ubuntu (Netplan)
Ubuntu verwendet die Netplan-Konfiguration für IPv6. Die Konfigurationsdateien liegen in /etc/netplan/.
Lassen Sie sich zunächst den Inhalt des Verzeichnisses /etc/netplan/ anzeigen, um Ihre Konfigurationsdatei zu finden:
ls /etc/netplan/
Ein fest vorgegebener Dateiname wie 00-installer-config.yaml existiert auf den meisten VPS nicht. Auf cloud-init-Images heißt die Datei üblicherweise 50-cloud-init.yaml. Verwenden Sie in den folgenden Schritten den tatsächlichen Dateinamen aus dem vorherigen Befehl.
Sichern Sie die vorhandene Datei (ersetzen Sie 50-cloud-init.yaml durch Ihren tatsächlichen Dateinamen):
sudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak
Öffnen Sie die Datei:
sudo nano /etc/netplan/50-cloud-init.yaml
Fügen Sie die Blöcke addresses und routes unter Ihrer Schnittstelle hinzu. Eine vollständige Datei mit IPv4 (bereits konfiguriert) und der neuen statischen IPv6-Adresse sieht so aus:
network: version: 2 ethernets: eth0: addresses: - 203.0.113.10/24 # existing IPv4 address - 2001:db8:1000::10/64 # new IPv6 address routes: - to: default via: 203.0.113.1 # existing IPv4 gateway - to: default via: 2001:db8:1000::1 # IPv6 default gateway nameservers: addresses: - 8.8.8.8 - 2001:4860:4860::8888 # Google public DNS over IPv6
Wenn Ihr Server seine IPv4-Adresse per DHCP erhält (bei vielen neu eingerichteten VPS üblich), sieht Ihre Datei etwas anders aus. Kopieren Sie nicht blind die obige statische IPv4-Konfiguration, sonst verlieren Sie Ihre funktionierende IPv4-Verbindung. Hier ein Beispiel mit dhcp4: true:
network: version: 2 ethernets: eth0: dhcp4: true addresses: - 2001:db8:1000::10/64 # new IPv6 address routes: - to: default via: 2001:db8:1000::1 # IPv6 default gateway nameservers: addresses: - 2001:4860:4860::8888 # Google public DNS over IPv6
Netplan verwendet YAML. Die Einrückung ist entscheidend: Verwenden Sie Leerzeichen, niemals Tabulatoren. Eine einzige falsch eingerückte Zeile kann dazu führen, dass die Konfiguration stillschweigend fehlschlägt oder nicht angewendet wird.
Testen Sie die Konfiguration, bevor Sie sie anwenden:
sudo netplan try
netplan try wendet die Konfiguration mit einem 120-Sekunden-Timer an. Wenn Sie nicht bestätigen, wird sie automatisch zurückgesetzt, sodass der Befehl per SSH gefahrlos ist. Wenn die Ausgabe korrekt aussieht, bestätigen Sie:
# Press Enter when prompted, or type: sudo netplan apply
Verwenden Sie bei der Arbeit über SSH immer netplan try statt netplan apply. Wenn die neue Konfiguration Ihre Verbindung unterbricht, holt Sie das automatische Zurücksetzen wieder herein.
3.2 Debian (/etc/network/interfaces)
Unter Debian fügen Sie IPv6 klassisch in /etc/network/interfaces hinzu, indem Sie für dieselbe Schnittstelle einen zweiten iface-Abschnitt mit der Adressfamilie inet6 anlegen.
Erstellen Sie zuerst eine Sicherung:
sudo cp /etc/network/interfaces /etc/network/interfaces.bak
Öffnen Sie die Datei:
sudo nano /etc/network/interfaces
Ihr vorhandener IPv4-Block sieht etwa so aus:
auto eth0 iface eth0 inet static address 203.0.113.10 netmask 255.255.255.0 gateway 203.0.113.1
Fügen Sie den IPv6-Abschnitt direkt darunter ein:
iface eth0 inet6 static address 2001:db8:1000::10 netmask 64 gateway 2001:db8:1000::1
Fügen Sie keine zweite Zeile auto eth0 hinzu. Die einzelne auto-Direktive aktiviert beim Initialisieren der Schnittstelle sowohl den inet- als auch den inet6-Abschnitt.
Wenden Sie die neue Konfiguration ohne vollständigen Neustart an:
sudo ifdown eth0 && sudo ifup eth0
Das Ausführen von ifdown eth0 über SSH unterbricht Ihre Verbindung. Führen Sie den Befehl über die serielle Konsole bzw. Webkonsole des Anbieters aus oder verwenden Sie ifreload -a. Beachten Sie, dass ifreload -a das Paket ifupdown2 voraussetzt, das in der Debian-Basisinstallation nicht enthalten ist. Installieren Sie es mit sudo apt install ifupdown2, um Schnittstellen neu zu laden, ohne aktive Sitzungen zu trennen.
3.3 AlmaLinux / RHEL (nmcli)
Unter AlmaLinux und RHEL 8/9 ist NetworkManager der Standard. Mit nmcli fügen Sie die IPv6-Adresse hinzu, ohne Dateien manuell zu bearbeiten.
Ermitteln Sie den Namen Ihrer Verbindung:
nmcli connection show
Erwartete Ausgabe:
NAME UUID TYPE DEVICE eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0
Fügen Sie die statische IPv6-Adresse hinzu:
sudo nmcli connection modify eth0 \ ipv6.method manual \ ipv6.addresses "2001:db8:1000::10/64" \ ipv6.gateway "2001:db8:1000::1"
Wenden Sie die Konfiguration an, ohne die SSH-Verbindung zu trennen:
sudo nmcli device reapply eth0
Schritt 4: IPv6-Konnektivität testen
Prüfen Sie nach dem Anwenden der Konfiguration, ob die Adresse zugewiesen ist und das Routing funktioniert.
4.1 Prüfen, ob die Adresse zugewiesen ist
ip -6 addr show eth0
Erwartete Ausgabe:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP inet6 2001:db8:1000::10/64 scope global valid_lft forever preferred_lft forever inet6 fe80::250:56ff:fe00:1/64 scope link valid_lft forever preferred_lft forever
Sie sollten Ihre Global Unicast Address mit scope global sehen. Die Link-Local-Adresse (scope link) ist ebenfalls vorhanden.
4.2 Standard-Gateway prüfen
ip -6 route show
Erwartete Ausgabe:
2001:db8:1000::/64 dev eth0 proto kernel metric 100 default via 2001:db8:1000::1 dev eth0 proto static metric 100
Die Zeile default via bestätigt, dass Ihr IPv6-Standard-Gateway korrekt konfiguriert ist.
4.3 IPv6-Konnektivität testen
Um die IPv6-Konnektivität zu einem bekannten öffentlichen Host zu testen, verwenden Sie ping6 (auf neueren Systemen ping -6):
ping6 -c 4 2606:4700:4700::1111
Erwartete Ausgabe:
PING 2606:4700:4700::1111(2606:4700:4700::1111) 56 data bytes 64 bytes from 2606:4700:4700::1111: icmp_seq=1 ttl=57 time=1.23 ms 64 bytes from 2606:4700:4700::1111: icmp_seq=2 ttl=57 time=1.19 ms 64 bytes from 2606:4700:4700::1111: icmp_seq=3 ttl=57 time=1.21 ms 64 bytes from 2606:4700:4700::1111: icmp_seq=4 ttl=57 time=1.20 ms
Schlägt ping6 fehl, obwohl die Adresse zugewiesen ist, liegt es fast immer an einer von drei Ursachen: Das Standard-Gateway ist falsch, die Firewall Ihres Anbieters blockiert ICMPv6 oder die IPv6-Zuteilung wurde auf Anbieterseite noch nicht aktiviert.
Sie können die Erreichbarkeit auch von außen mit einem öffentlichen Tool wie https://ipv6-test.com testen. Geben Sie die IPv6-Adresse Ihres Servers ein und starten Sie eine Erreichbarkeitsprüfung.
4.4 DNS-Auflösung über IPv6 prüfen
Stellen Sie zunächst sicher, dass das Tool dig installiert ist.
Unter AlmaLinux 10 ist dig nicht in der Basisinstallation enthalten:
sudo dnf install -y bind-utils
Auf minimalen Debian-Images kann das Paket ebenfalls fehlen:
sudo apt install -y dnsutils
Prüfen Sie, ob Ihr Server Hostnamen über den IPv6-DNS-Server auflösen kann:
dig AAAA google.com @2001:4860:4860::8888
Eine erfolgreiche Antwort enthält eine ANSWER SECTION mit einem oder mehreren AAAA-Einträgen.
Schritt 5: Firewall für IPv6 anpassen
Wenn auf Ihrem Server eine Software-Firewall läuft, müssen Sie IPv6-Verkehr ausdrücklich erlauben. Viele Firewall-Konfigurationen decken standardmäßig nur IPv4 ab.
Bei INTROSERV sind auf Netzwerkebene für VPS und Dedicated Server standardmäßig alle Ports offen, mit wenigen Ausnahmen (E-Mail-Ports 25, 465, 587, 2525 und der LDAP-Port 389 werden zum Schutz der IP-Reputation gefiltert). Für normalen Webverkehr oder SSH müssen Sie daher keine Ports in einer Firewall auf Anbieterseite öffnen. Für die Firewall auf Betriebssystemebene Ihres Servers sind Sie weiterhin selbst verantwortlich. Details finden Sie in der Anleitung Netzwerksicherheit und Portfilterung.
Ubuntu/Debian (UFW)
Unter Debian ist UFW nicht in der Basisinstallation enthalten. Installieren Sie es bei Bedarf zuerst:
sudo apt install -y ufw
UFW wendet Regeln auf IPv4 und IPv6 an, wenn in der Konfiguration IPV6=yes gesetzt ist. Prüfen Sie dies:
grep IPV6 /etc/default/ufw
Erwartete Ausgabe:
IPV6=yes
Lautet der Wert IPV6=no, öffnen Sie die Datei und ändern Sie ihn:
sudo nano /etc/default/ufw
Laden Sie UFW anschließend neu:
sudo ufw reload
Wurde UFW noch nicht aktiviert, gibt ufw reload die Meldung Firewall not enabled aus. Das ist unproblematisch; die Regeln werden automatisch angewendet, sobald Sie die Firewall mit sudo ufw enable aktivieren.
Ihre vorhandenen ufw allow-Regeln (SSH, HTTP, HTTPS) gelten nun auch für IPv6.
AlmaLinux / RHEL (firewalld)
firewalld verarbeitet IPv6 nativ über sein Zonenmodell. Wenn sich Ihre Schnittstelle in der richtigen Zone befindet, wird der IPv6-Verkehr automatisch verwaltet. Prüfen Sie dies:
sudo firewall-cmd --get-active-zones
Für Dienste wie SSH und HTTPS:
sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
Ist ein Dienst in der Zone bereits erlaubt, gibt firewall-cmd die Meldung Warning: ALREADY_ENABLED aus. Das ist normal und kein Fehler. Unter AlmaLinux sind ssh und dhcpv6-client in der Zone public standardmäßig erlaubt.
ICMPv6 ist für die korrekte Funktion von IPv6 erforderlich. Es übernimmt Neighbor Discovery, Path MTU Discovery und Router Advertisements, also die IPv6-Entsprechungen von ARP. Blockieren Sie ICMPv6 nicht vollständig. Die meisten Firewall-Tools erlauben es standardmäßig. Wenn Sie rohe nftables- oder ip6tables-Regeln schreiben, erlauben Sie icmpv6 ausdrücklich.
Rollback
Ubuntu (Netplan)
Stellen Sie die Sicherung wieder her und wenden Sie sie an (ersetzen Sie 50-cloud-init.yaml durch Ihren tatsächlichen Dateinamen):
sudo cp /etc/netplan/50-cloud-init.yaml.bak /etc/netplan/50-cloud-init.yaml sudo netplan apply
Debian (/etc/network/interfaces)
Stellen Sie die Sicherung wieder her:
sudo cp /etc/network/interfaces.bak /etc/network/interfaces sudo ifdown eth0 && sudo ifup eth0
AlmaLinux (nmcli)
Entfernen Sie die IPv6-Einstellungen aus der Verbindung:
sudo nmcli connection modify eth0 ipv6.method auto sudo nmcli connection modify eth0 ipv6.addresses "" ipv6.gateway "" sudo nmcli connection modify eth0 ipv6.method ignore sudo nmcli device reapply eth0
NetworkManager erlaubt es nicht, ipv6.method ignore zu setzen, solange statische ipv6.addresses vorhanden sind. Wenn Sie die Methode zuerst auf auto setzen, lassen sich die Adressen ordnungsgemäß entfernen.
IPv6 systemweit deaktivieren (Notfall)
Wenn Sie IPv6 auf allen Schnittstellen vollständig abschalten müssen:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
Um die Änderung dauerhaft zu machen, fügen Sie Folgendes in /etc/sysctl.d/99-disable-ipv6.conf ein:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
Führen Sie anschließend sudo sysctl -p /etc/sysctl.d/99-disable-ipv6.conf aus.
Fehlerbehebung
Ping6 schlägt sofort mit „Network unreachable“ fehl
Das Standard-Gateway (IPv6) fehlt oder ist falsch. Führen Sie ip -6 route show aus und prüfen Sie, ob ein Eintrag default via existiert und mit dem Gateway aus dem Kundenbereich Ihres Anbieters übereinstimmt.
Die Adresse wird angezeigt, aber scope ist nur link, nicht global
Die Adresse wurde der falschen Schnittstelle hinzugefügt, oder die Konfigurationsdatei enthält einen Tippfehler in Adresse oder Präfix. Prüfen Sie die Zuteilung Ihres Anbieters sorgfältig.
Netplan apply meldet einen Parsing-Fehler
Die YAML-Einrückung stimmt nicht. Führen Sie cat -A /etc/netplan/50-cloud-init.yaml (bzw. mit Ihrem tatsächlichen Dateinamen) aus, um Tabulatorzeichen (als ^I angezeigt) sichtbar zu machen, und ersetzen Sie diese durch Leerzeichen.
SSH-Verbindung bricht nach ifdown unter Debian ab
Nutzen Sie die Webkonsole des Anbieters oder den VNC-/IPMI-Zugriff, um wieder Zugang zu erhalten. Stellen Sie /etc/network/interfaces aus der Sicherung wieder her und führen Sie ifup eth0 aus.
UFW blockiert IPv6 weiterhin, obwohl IPV6=yes gesetzt ist
Regeln, die vor der Änderung hinzugefügt wurden, wurden nur für IPv4 gespeichert. Führen Sie sudo ufw reset aus und legen Sie Ihre Regeln erneut an. Sie gelten dann für beide Adressfamilien.
Der Befehl sudo ufw reset ist destruktiv. Er setzt alle Firewall-Regeln auf die Standardwerte zurück. Stellen Sie vor der Ausführung sicher, welche Ports (z. B. SSH) Sie erneut freigeben müssen, damit Sie sich nicht aussperren.
Fazit
Das war's. Ihr INTROSERV-Server verfügt nun über eine funktionierende IPv6-Adresse, ein korrekt konfiguriertes Standard-Gateway und eine Firewall, die beide Protokollfamilien abdeckt. Nächste Schritte: Beantragen Sie über das INTROSERV Client Area einen PTR-Eintrag und passen Sie Ihre Nginx- oder Apache-Virtual-Hosts an, damit sie auf der neuen IPv6-Adresse lauschen.
Dokumentversion: 1.0
Zuletzt aktualisiert: Mai 2026
Verantwortlich: Team für technische Dokumentation