Konfiguracja protokołu IPv6 na serwerach VPS i serwerach dedykowanych | INTROSERV
EUR
european

EUR

usa

USD

Poland Pl
Ex. VAT Ex. VAT 0%

Konfiguracja protokołu IPv6 na serwerach VPS i serwerach dedykowanych

Poziom: Początkujący / Średnio zaawansowany
Szacowany czas: ~30 minut
Cel: Włączyć i skonfigurować sieć IPv6 na serwerze dedykowanym lub VPS, aby serwer był dostępny przez IPv6, a wszystkie usługi sieciowe działały poprawnie z nowym adresem.

Wprowadzenie

Do Twojego serwera INTROSERV prawdopodobnie jest już przypisany adres IPv6 – po prostu nie jest jeszcze skonfigurowany. W tym poradniku konfiguracji sieci IPv6 na VPS włączysz IPv6 na serwerze z Linuksem, przypiszesz statyczny adres IPv6, skonfigurujesz bramę IPv6 w systemie Linux i sprawdzisz łączność. Poradnik obejmuje Ubuntu (Netplan), Debian (/etc/network/interfaces) i AlmaLinux (nmcli).

Czym jest IPv6?

IPv6 (Internet Protocol version 6) to obecna generacja protokołu internetowego, zaprojektowana jako następca IPv4. Najważniejsze praktyczne różnice dla administratorów serwerów:

  • Adres IPv6 ma 128 bitów i jest zapisywany jako osiem grup po cztery cyfry szesnastkowe oddzielonych dwukropkami: 2001:db8:85a3::8a2e:370:7334.
  • Global Unicast Address (GUA) to odpowiednik publicznego adresu IPv4 w IPv6, routowalny w internecie. Twój VPS otrzyma taki adres.
  • Adres link-local jest automatycznie przypisywany każdemu interfejsowi obsługującemu IPv6 (prefiks fe80::/10). Nie jest routowalny poza segment lokalny, ale jest wymagany do wykrywania sąsiadów (neighbor discovery) i przez protokoły routingu.
  • Podsieć (prefiks IPv6) określa, która część adresu identyfikuje sieć. Na typowym VPS zobaczysz prefiks /64 lub /128.
  • Brama domyślna (IPv6) to router, do którego serwer wysyła pakiety, gdy cel nie znajduje się w łączu lokalnym. Ten adres poda Twój dostawca.

Wymagania wstępne

Zanim zaczniesz, upewnij się, że spełnione są następujące warunki:

  • System operacyjny: Ubuntu 20.04/22.04/24.04 LTS, Debian 11/12/13 lub AlmaLinux/RHEL 8/9/10
  • Dostęp: dostęp sudo lub root do serwera przez SSH
  • Przydział IPv6: adres IPv6, prefiks podsieci i brama domyślna dostarczone przez dostawcę hostingu. Znajdziesz je w panelu klienta przed rozpoczęciem pracy.
  • Wymagana wiedza: swobodne posługiwanie się wierszem poleceń Linuksa i podstawowa edycja plików konfiguracyjnych

Info

W INTROSERV przypisany adres IPv6, prefiks i bramę znajdziesz w Client Area: przejdź do swojej usługi, a następnie otwórz kartę Network lub IP Addresses. Plany VPS INTROSERV zwykle otrzymują prefiks /112, a serwery dedykowane – prefiks /64. Jeśli nie widać żadnego adresu IPv6, skontaktuj się z pomocą techniczną INTROSERV, aby poprosić o przydział.

Krok 1: Sprawdź aktualny stan IPv6

Zanim zmienisz jakąkolwiek konfigurację, sprawdź, co kernel już wie.

Uruchom:

ip -6 addr show

Oczekiwany wynik na serwerze, na którym nie zastosowano jeszcze żadnej konfiguracji IPv6:

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

Adres fe80:: to adres link-local, przypisywany automatycznie przez kernel niezależnie od konfiguracji. Brak wpisu z scope global oznacza, że nie skonfigurowano jeszcze żadnego Global Unicast Address.

Sprawdź także, czy IPv6 jest włączony w kernelu:

sudo sysctl net.ipv6.conf.all.disable_ipv6

Info

W Debianie 13 zwykli użytkownicy nie mają /usr/sbin w zmiennej $PATH, więc uruchomienie sysctl bez sudo zwróci command not found. Ponadto minimalna instalacja Debiana 13 domyślnie nie zawiera sudo. Przed kontynuacją musisz przełączyć się na użytkownika root (su -), zainstalować sudo (apt install sudo) i dodać swojego użytkownika do grupy sudoers.

Oczekiwany wynik:

net.ipv6.conf.all.disable_ipv6 = 0

Wartość 0 oznacza, że IPv6 jest włączony. Jeśli widzisz 1, IPv6 został wyłączony na poziomie kernela.

Aby włączyć go ponownie tymczasowo:

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0

Aby zmiana była trwała, poszukaj w /etc/sysctl.conf lub w plikach w /etc/sysctl.d/ wiersza net.ipv6.conf.all.disable_ipv6 = 1, usuń go lub zakomentuj, a następnie uruchom:

sudo sysctl -p

Krok 2: Ustal nazwę interfejsu

Przed edycją jakiegokolwiek pliku konfiguracyjnego potrzebujesz dokładnej nazwy publicznego interfejsu sieciowego.

Uruchom:

ip -br link

Oczekiwany wynik:

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>

Interfejs w stanie UP z adresem MAC to Twój interfejs główny. Typowe nazwy to eth0, ens3, ens18, ens33, ens160 (częste w VMware i nowoczesnych kernelach) oraz podobne warianty ensXX/enpXsX. We wszystkich poniższych krokach konfiguracji używaj dokładnie tej nazwy, którą pokazuje ip -br link.

Krok 3: Skonfiguruj statyczny adres IPv6

Metoda konfiguracji zależy od dystrybucji. Ubuntu 18.04 i nowsze używają Netplan, Debian domyślnie używa /etc/network/interfaces, a AlmaLinux korzysta z NetworkManager lub skryptów interfejsów w /etc/sysconfig/network-scripts/.

Zanim przejdziesz dalej, zbierz z panelu dostawcy następujące wartości:

Pole Przykład
Adres IPv6 2001:db8:1000::10
Długość prefiksu 64
Brama domyślna (IPv6) 2001:db8:1000::1

W poniższych krokach zastąp te przykładowe wartości rzeczywistymi.

3.1 Ubuntu (Netplan)

Ubuntu używa konfiguracji IPv6 w Netplan. Pliki konfiguracyjne znajdują się w /etc/netplan/.

Najpierw wyświetl zawartość katalogu /etc/netplan/, aby znaleźć swój plik konfiguracyjny:

ls /etc/netplan/

Info

Na większości VPS nie istnieje z góry ustalona nazwa pliku, taka jak 00-installer-config.yaml. W obrazach z cloud-init plik nazywa się zwykle 50-cloud-init.yaml. W poniższych krokach użyj rzeczywistej nazwy pliku ustalonej poprzednim poleceniem.

Utwórz kopię zapasową istniejącego pliku (zastąp 50-cloud-init.yaml rzeczywistą nazwą pliku):

sudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak

Otwórz plik:

sudo nano /etc/netplan/50-cloud-init.yaml

Dodaj bloki addresses i routes pod swoim interfejsem. Kompletny plik z IPv4 (już skonfigurowanym) i nowym statycznym adresem IPv6 wygląda tak:

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

Jeśli serwer otrzymuje adres IPv4 przez DHCP (co jest częste w wielu świeżo utworzonych VPS), Twój plik będzie wyglądać nieco inaczej. Nie kopiuj bezmyślnie powyższej statycznej konfiguracji IPv4, bo stracisz działające połączenie IPv4. Oto przykład z 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

Warning

Netplan używa YAML. Wcięcia mają znaczenie: używaj spacji, nigdy tabulatorów. Jedna źle wyrównana linia może sprawić, że konfiguracja zawiedzie bez komunikatu lub nie zostanie zastosowana.

Przetestuj konfigurację przed jej zastosowaniem:

sudo netplan try

netplan try stosuje konfigurację z 120-sekundowym licznikiem czasu. Jeśli jej nie potwierdzisz, zostanie automatycznie cofnięta, więc polecenie jest bezpieczne przez SSH. Jeśli wynik wygląda poprawnie, potwierdź:

# Press Enter when prompted, or type: sudo netplan apply

Tip

Podczas pracy przez SSH zawsze używaj netplan try zamiast netplan apply. Jeśli nowa konfiguracja przerwie połączenie, automatyczne cofnięcie przywróci Ci dostęp.

3.2 Debian (/etc/network/interfaces)

W Debianie klasyczny sposób dodania IPv6 w /etc/network/interfaces polega na dodaniu drugiej sekcji iface dla tego samego interfejsu z rodziną adresów inet6.

Najpierw utwórz kopię zapasową:

sudo cp /etc/network/interfaces /etc/network/interfaces.bak

Otwórz plik:

sudo nano /etc/network/interfaces

Istniejący blok IPv4 wygląda mniej więcej tak:

auto eth0 iface eth0 inet static address 203.0.113.10 netmask 255.255.255.0 gateway 203.0.113.1

Dodaj sekcję IPv6 bezpośrednio pod nim:

iface eth0 inet6 static address 2001:db8:1000::10 netmask 64 gateway 2001:db8:1000::1

Info

Nie dodawaj drugiego wiersza auto eth0. Pojedyncza dyrektywa auto uruchamia zarówno sekcję inet, jak i inet6 podczas inicjalizacji interfejsu.

Zastosuj nową konfigurację bez pełnego restartu:

sudo ifdown eth0 && sudo ifup eth0

Warning

Uruchomienie ifdown eth0 przez SSH zrywa połączenie. Wykonaj to polecenie z konsoli szeregowej/webowej dostawcy lub użyj ifreload -a. Pamiętaj, że ifreload -a wymaga pakietu ifupdown2, który nie jest dołączony do podstawowej instalacji Debiana. Zainstaluj go poleceniem sudo apt install ifupdown2, aby przeładowywać interfejsy bez zrywania aktywnych sesji.

3.3 AlmaLinux / RHEL (nmcli)

W AlmaLinux i RHEL 8/9 domyślnie działa NetworkManager. Użyj nmcli, aby dodać adres IPv6 bez ręcznej edycji plików.

Sprawdź nazwę swojego połączenia:

nmcli connection show

Oczekiwany wynik:

NAME UUID TYPE DEVICE eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0

Dodaj statyczny adres IPv6:

sudo nmcli connection modify eth0 \ ipv6.method manual \ ipv6.addresses "2001:db8:1000::10/64" \ ipv6.gateway "2001:db8:1000::1"

Zastosuj konfigurację bez zrywania połączenia SSH:

sudo nmcli device reapply eth0

Krok 4: Przetestuj łączność IPv6

Po zastosowaniu konfiguracji sprawdź, czy adres jest przypisany i czy routing działa.

4.1 Sprawdź, czy adres jest przypisany

ip -6 addr show eth0

Oczekiwany wynik:

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

Powinieneś zobaczyć swój Global Unicast Address z scope global. Obecny będzie także adres link-local (scope link).

4.2 Sprawdź bramę domyślną

ip -6 route show

Oczekiwany wynik:

2001:db8:1000::/64 dev eth0 proto kernel metric 100 default via 2001:db8:1000::1 dev eth0 proto static metric 100

Wiersz default via potwierdza, że brama domyślna IPv6 jest skonfigurowana poprawnie.

4.3 Przetestuj łączność IPv6

Aby przetestować łączność IPv6 ze znanym hostem publicznym, użyj ping6 (lub ping -6 w nowszych systemach):

ping6 -c 4 2606:4700:4700::1111

Oczekiwany wynik:

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

Jeśli ping6 nie działa, ale adres jest przypisany, przyczyną są prawie zawsze trzy rzeczy: błędna brama domyślna, blokowanie ICMPv6 przez zaporę dostawcy albo nieaktywowany po stronie dostawcy przydział IPv6.

Tip

Łączność możesz też sprawdzić z zewnątrz za pomocą publicznego narzędzia, takiego jak https://ipv6-test.com. Wpisz adres IPv6 swojego serwera i uruchom test osiągalności.

4.4 Sprawdź rozwiązywanie nazw DNS przez IPv6

Najpierw upewnij się, że masz zainstalowane narzędzie dig.

W AlmaLinux 10 dig nie jest dołączony do podstawowej instalacji:

sudo dnf install -y bind-utils

W minimalnych obrazach Debiana pakiet również może być niedostępny:

sudo apt install -y dnsutils

Sprawdź, czy serwer potrafi rozwiązywać nazwy hostów za pomocą serwera DNS przez IPv6:

dig AAAA google.com @2001:4860:4860::8888

Poprawna odpowiedź zawiera ANSWER SECTION z jednym lub kilkoma rekordami AAAA.

Krok 5: Dostosuj zaporę do IPv6

Jeśli na serwerze działa programowa zapora, musisz jawnie zezwolić na ruch IPv6. Domyślnie wiele konfiguracji zapór obejmuje wyłącznie IPv4.

Info

W INTROSERV wszystkie porty są domyślnie otwarte na poziomie sieci dla VPS i serwerów dedykowanych, z niewielką liczbą wyjątków (porty poczty 25, 465, 587, 2525 oraz port LDAP 389 są filtrowane w celu ochrony reputacji adresów IP). Oznacza to, że nie musisz otwierać portów w zaporze po stronie dostawcy dla standardowego ruchu WWW ani SSH. Nadal odpowiadasz za zaporę na poziomie systemu operacyjnego działającą na serwerze. Szczegóły znajdziesz w poradniku Bezpieczeństwo sieci i filtrowanie portów.

Ubuntu/Debian (UFW)

W Debianie UFW nie jest dołączony do podstawowej instalacji. W razie potrzeby zainstaluj go najpierw:

sudo apt install -y ufw

UFW stosuje reguły zarówno do IPv4, jak i IPv6, gdy w jego konfiguracji ustawiono IPV6=yes. Sprawdź:

grep IPV6 /etc/default/ufw

Oczekiwany wynik:

IPV6=yes

Jeśli widnieje IPV6=no, otwórz plik i zmień wartość:

sudo nano /etc/default/ufw

Następnie przeładuj UFW:

sudo ufw reload

Info

Jeśli UFW nie został jeszcze aktywowany, ufw reload zwróci Firewall not enabled. To w porządku; reguły zostaną zastosowane automatycznie, gdy w końcu włączysz zaporę poleceniem sudo ufw enable.

Istniejące reguły ufw allow (SSH, HTTP, HTTPS) będą teraz obowiązywać także dla IPv6.

AlmaLinux / RHEL (firewalld)

firewalld obsługuje IPv6 natywnie w ramach modelu stref. Jeśli interfejs znajduje się we właściwej strefie, ruch IPv6 jest zarządzany automatycznie. Sprawdź:

sudo firewall-cmd --get-active-zones

Dla usług takich jak SSH i HTTPS:

sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload

Info

Jeśli usługa jest już dozwolona w strefie, firewall-cmd wyświetli Warning: ALREADY_ENABLED. To normalne i nie jest błędem. W AlmaLinux ssh i dhcpv6-client są domyślnie dozwolone w strefie public.

Info

ICMPv6 jest niezbędny do poprawnego działania IPv6. Obsługuje wykrywanie sąsiadów, wykrywanie Path MTU i ogłoszenia routera (router advertisements), czyli odpowiedniki ARP w IPv6. Nie blokuj ICMPv6 w całości. Większość narzędzi zaporowych domyślnie na niego zezwala; jeśli piszesz reguły nftables lub ip6tables ręcznie, jawnie zezwól na icmpv6.

Wycofanie zmian (rollback)

Ubuntu (Netplan)

Przywróć kopię zapasową i zastosuj ją (zastąp 50-cloud-init.yaml rzeczywistą nazwą pliku):

sudo cp /etc/netplan/50-cloud-init.yaml.bak /etc/netplan/50-cloud-init.yaml sudo netplan apply

Debian (/etc/network/interfaces)

Przywróć kopię zapasową:

sudo cp /etc/network/interfaces.bak /etc/network/interfaces sudo ifdown eth0 && sudo ifup eth0

AlmaLinux (nmcli)

Usuń ustawienia IPv6 z połączenia:

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

Info

NetworkManager nie pozwala ustawić ipv6.method ignore, dopóki istnieją statyczne ipv6.addresses. Ustawienie najpierw metody auto pozwala prawidłowo wyczyścić adresy.

Wyłączenie IPv6 w całym systemie (sytuacja awaryjna)

Jeśli musisz całkowicie wyłączyć IPv6 na wszystkich interfejsach:

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1

Aby zmiana była trwała, dodaj poniższe wpisy do /etc/sysctl.d/99-disable-ipv6.conf:

net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1

Następnie uruchom sudo sysctl -p /etc/sysctl.d/99-disable-ipv6.conf.

Rozwiązywanie problemów

Ping6 od razu kończy się błędem „Network unreachable”

Brama domyślna (IPv6) jest nieustawiona lub błędna. Uruchom ip -6 route show i sprawdź, czy wpis default via istnieje i zgadza się z bramą z panelu dostawcy.

Adres jest widoczny, ale scope ma wartość tylko link, a nie global

Adres został dodany do niewłaściwego interfejsu albo w pliku konfiguracyjnym jest literówka w adresie lub prefiksie. Uważnie sprawdź przydział od dostawcy.

Netplan apply zwraca błąd parsowania

Wcięcia YAML są nieprawidłowe. Uruchom cat -A /etc/netplan/50-cloud-init.yaml (lub z rzeczywistą nazwą pliku), aby ujawnić znaki tabulacji (widoczne jako ^I), i zastąp je spacjami.

SSH rozłącza się po ifdown w Debianie

Skorzystaj z konsoli webowej dostawcy lub dostępu VNC/IPMI, aby odzyskać dostęp. Przywróć /etc/network/interfaces z kopii zapasowej i uruchom ifup eth0.

UFW nadal blokuje IPv6 po ustawieniu IPV6=yes

Reguły dodane przed zmianą zostały zapisane tylko dla IPv4. Uruchom sudo ufw reset, a następnie dodaj reguły ponownie – będą już obowiązywać dla obu rodzin adresów.

Warning

Polecenie sudo ufw reset jest destrukcyjne. Przywraca wszystkie reguły zapory do wartości domyślnych. Zanim je uruchomisz, upewnij się, które porty trzeba ponownie zezwolić (np. SSH), aby nie zablokować sobie dostępu.

Podsumowanie

To wszystko. Twój serwer INTROSERV ma teraz działający adres IPv6, poprawnie skonfigurowaną bramę domyślną i zaporę obejmującą obie rodziny protokołów. Kolejne kroki: poproś o rekord PTR przez Client Area INTROSERV oraz zaktualizuj hosty wirtualne Nginx lub Apache, aby nasłuchiwały na nowym adresie IPv6.

Wersja dokumentu: 1.0
Ostatnia aktualizacja: maj 2026
Właściciel: Zespół dokumentacji technicznej

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA