Nastavitev IPv6 na VPS in namenskih strežnikih
Raven: Začetnik / Srednje napredni
Ocenjeni čas: ~30 minut
Cilj: Omogočiti in nastaviti omrežje IPv6 na namenskem strežniku ali VPS, tako da je strežnik dosegljiv prek IPv6 in vse omrežne storitve pravilno delujejo z novim naslovom.
Uvod
Vašemu strežniku INTROSERV je verjetno že dodeljen naslov IPv6, le da še ni nastavljen. V tem vodniku za nastavitev omrežja IPv6 na VPS boste omogočili IPv6 na strežniku Linux, dodelili statični naslov IPv6, nastavili prehod IPv6 v Linuxu in preverili povezljivost. Vodnik zajema Ubuntu (Netplan), Debian (/etc/network/interfaces) in AlmaLinux (nmcli).
Kaj je IPv6?
IPv6 (Internet Protocol različica 6) je trenutna generacija internetnega protokola, zasnovana kot nadomestek za IPv4. Najpomembnejše praktične razlike za skrbnike strežnikov:
- Naslov IPv6 je dolg 128 bitov in zapisan kot osem skupin po štiri šestnajstiške števke, ločenih z dvopičji:
2001:db8:85a3::8a2e:370:7334. - Global Unicast Address (GUA) je ustreznik javnega naslova IPv4 v IPv6 in je usmerljiv v internetu. Vaš VPS bo prejel takšen naslov.
- Lokalni naslov povezave (link-local) se samodejno dodeli vsakemu vmesniku, ki podpira IPv6 (predpona
fe80::/10). Ni usmerljiv zunaj lokalnega segmenta, vendar je potreben za odkrivanje sosedov (neighbor discovery) in usmerjevalne protokole. - Podomrežje (predpona IPv6) določa, kateri del naslova označuje omrežje. Pri običajnem VPS boste videli predpono
/64ali/128. - Privzeti prehod (IPv6) je usmerjevalnik, ki mu strežnik pošilja pakete, kadar cilj ni na lokalni povezavi. Ta naslov vam sporoči ponudnik.
Predpogoji
Pred začetkom se prepričajte, da so izpolnjeni naslednji pogoji:
- Operacijski sistem: Ubuntu 20.04/22.04/24.04 LTS, Debian 11/12/13 ali AlmaLinux/RHEL 8/9/10
- Dostop: dostop sudo ali root do strežnika prek SSH
- Dodelitev IPv6: naslov IPv6, predpona podomrežja in privzeti prehod, ki jih zagotovi vaš ponudnik gostovanja. Podatke poiščite v nadzorni plošči, preden začnete.
- Potrebno znanje: suvereno delo z ukazno vrstico Linuxa in osnovno urejanje konfiguracijskih datotek
Pri INTROSERV dodeljeni naslov IPv6, predpono in prehod najdete v Client Area: odprite svojo storitev in nato zavihek Network ali IP Addresses. Paketi VPS INTROSERV običajno prejmejo predpono /112, namenski strežniki pa predpono /64. Če naslov IPv6 ni naveden, se za dodelitev obrnite na podporo INTROSERV.
Korak 1: Preverite trenutno stanje IPv6
Preden spremenite kakršno koli konfiguracijo, preverite, kaj jedro že pozna.
Zaženite:
ip -6 addr show
Pričakovani izpis na strežniku, na katerem konfiguracija IPv6 še ni uporabljena:
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
Naslov fe80:: je lokalni naslov povezave, ki ga jedro dodeli samodejno ne glede na konfiguracijo. Če vnosa z scope global ni, Global Unicast Address še ni nastavljen.
Preverite tudi, ali je IPv6 v jedru omogočen:
sudo sysctl net.ipv6.conf.all.disable_ipv6
V Debianu 13 navadni uporabniki nimajo /usr/sbin v spremenljivki $PATH, zato zagon sysctl brez sudo vrne command not found. Poleg tega minimalna namestitev Debiana 13 privzeto ne vsebuje sudo. Preden nadaljujete, morate preklopiti na uporabnika root (su -), namestiti sudo (apt install sudo) in svojega uporabnika dodati v skupino sudoers.
Pričakovani izpis:
net.ipv6.conf.all.disable_ipv6 = 0
Vrednost 0 pomeni, da je IPv6 omogočen. Če vidite 1, je bil IPv6 onemogočen na ravni jedra.
Če ga želite začasno znova omogočiti:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
Za trajno spremembo v /etc/sysctl.conf ali datotekah v /etc/sysctl.d/ poiščite vrstico net.ipv6.conf.all.disable_ipv6 = 1, jo odstranite ali zakomentirajte in nato zaženite:
sudo sysctl -p
Korak 2: Poiščite ime vmesnika
Pred urejanjem katere koli konfiguracijske datoteke potrebujete natančno ime svojega javnega omrežnega vmesnika.
Zaženite:
ip -br link
Pričakovani izpis:
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>
Vmesnik v stanju UP z naslovom MAC je vaš primarni vmesnik. Pogosta imena so eth0, ens3, ens18, ens33, ens160 (pogosto v VMware in pri sodobnih jedrih) ter podobne različice ensXX/enpXsX. V vseh spodnjih korakih konfiguracije uporabite natanko tisto ime, ki ga prikaže ip -br link.
Korak 3: Nastavite statični naslov IPv6
Način nastavitve je odvisen od distribucije. Ubuntu 18.04 in novejši uporabljajo Netplan, Debian privzeto uporablja /etc/network/interfaces, AlmaLinux pa NetworkManager ali skripte vmesnikov v /etc/sysconfig/network-scripts/.
Preden nadaljujete, iz nadzorne plošče ponudnika zberite naslednje vrednosti:
| Polje | Primer |
|---|---|
| Naslov IPv6 | 2001:db8:1000::10 |
| Dolžina predpone | 64 |
| Privzeti prehod (IPv6) | 2001:db8:1000::1 |
V spodnjih korakih te primere zamenjajte z resničnimi vrednostmi.
3.1 Ubuntu (Netplan)
Ubuntu uporablja konfiguracijo IPv6 v Netplanu. Konfiguracijske datoteke so v /etc/netplan/.
Najprej izpišite vsebino imenika /etc/netplan/, da poiščete svojo konfiguracijsko datoteko:
ls /etc/netplan/
Vnaprej določeno ime datoteke, kot je 00-installer-config.yaml, na večini VPS ne obstaja. Na slikah z cloud-init se datoteka običajno imenuje 50-cloud-init.yaml. V spodnjih korakih uporabite pravo ime datoteke, ki ste ga ugotovili s prejšnjim ukazom.
Naredite varnostno kopijo obstoječe datoteke (50-cloud-init.yaml zamenjajte z dejanskim imenom datoteke):
sudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak
Odprite datoteko:
sudo nano /etc/netplan/50-cloud-init.yaml
Pod svoj vmesnik dodajte bloka addresses in routes. Popolna datoteka z IPv4 (že nastavljenim) in novim statičnim naslovom IPv6 je videti takole:
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
Če vaš strežnik naslov IPv4 prejme prek DHCP (kar je pri mnogih na novo ustvarjenih VPS običajno), bo datoteka nekoliko drugačna. Zgornje statične konfiguracije IPv4 ne kopirajte slepo, sicer boste izgubili delujočo povezavo IPv4. Tukaj je primer 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
Netplan uporablja YAML. Zamiki so pomembni: uporabljajte presledke, nikoli tabulatorjev. Ena sama napačno poravnana vrstica lahko povzroči, da konfiguracija tiho odpove ali se ne uveljavi.
Konfiguracijo preizkusite, preden jo uveljavite:
sudo netplan try
netplan try uveljavi konfiguracijo z 120-sekundnim časovnikom. Če je ne potrdite, se samodejno povrne, zato je ukaz varen prek SSH. Če je izpis videti pravilen, potrdite:
# Press Enter when prompted, or type: sudo netplan apply
Pri delu prek SSH vedno uporabite netplan try namesto netplan apply. Če nova konfiguracija prekine povezavo, vas bo samodejna povrnitev znova spustila noter.
3.2 Debian (/etc/network/interfaces)
V Debianu je klasičen način za dodajanje IPv6 v /etc/network/interfaces dodajanje drugega bloka iface za isti vmesnik z družino inet6.
Najprej naredite varnostno kopijo:
sudo cp /etc/network/interfaces /etc/network/interfaces.bak
Odprite datoteko:
sudo nano /etc/network/interfaces
Vaš obstoječi blok IPv4 bo videti približno takole:
auto eth0 iface eth0 inet static address 203.0.113.10 netmask 255.255.255.0 gateway 203.0.113.1
Blok IPv6 dodajte neposredno pod njim:
iface eth0 inet6 static address 2001:db8:1000::10 netmask 64 gateway 2001:db8:1000::1
Ne dodajajte druge vrstice auto eth0. Ena sama direktiva auto ob inicializaciji vmesnika zažene tako blok inet kot blok inet6.
Novo konfiguracijo uveljavite brez popolnega ponovnega zagona:
sudo ifdown eth0 && sudo ifup eth0
Zagon ifdown eth0 prek SSH prekine vašo povezavo. Ukaz izvedite iz serijske/spletne konzole ponudnika ali uporabite ifreload -a. Upoštevajte, da ifreload -a zahteva paket ifupdown2, ki ni vključen v osnovno namestitev Debiana. Namestite ga z sudo apt install ifupdown2, da lahko vmesnike ponovno naložite brez prekinitve aktivnih sej.
3.3 AlmaLinux / RHEL (nmcli)
V AlmaLinux in RHEL 8/9 je privzeto nameščen NetworkManager. Z nmcli dodajte naslov IPv6, ne da bi datoteke urejali ročno.
Poiščite ime svoje povezave:
nmcli connection show
Pričakovani izpis:
NAME UUID TYPE DEVICE eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0
Dodajte statični naslov IPv6:
sudo nmcli connection modify eth0 \ ipv6.method manual \ ipv6.addresses "2001:db8:1000::10/64" \ ipv6.gateway "2001:db8:1000::1"
Konfiguracijo uveljavite, ne da bi prekinili povezavo SSH:
sudo nmcli device reapply eth0
Korak 4: Preizkusite povezljivost IPv6
Ko je konfiguracija uveljavljena, preverite, ali je naslov dodeljen in ali usmerjanje deluje.
4.1 Preverite, ali je naslov dodeljen
ip -6 addr show eth0
Pričakovani izpis:
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
Videti bi morali svoj Global Unicast Address z scope global. Prisoten bo tudi lokalni naslov povezave (scope link).
4.2 Preverite privzeti prehod
ip -6 route show
Pričakovani izpis:
2001:db8:1000::/64 dev eth0 proto kernel metric 100 default via 2001:db8:1000::1 dev eth0 proto static metric 100
Vrstica default via potrjuje, da je vaš privzeti prehod IPv6 pravilno nastavljen.
4.3 Preizkusite povezljivost IPv6
Za preizkus povezljivosti IPv6 do znanega javnega gostitelja uporabite ping6 (ali ping -6 v novejših sistemih):
ping6 -c 4 2606:4700:4700::1111
Pričakovani izpis:
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
Če ping6 ne uspe, naslov pa je dodeljen, je težava skoraj vedno ena od treh: privzeti prehod je napačen, požarni zid vašega ponudnika blokira ICMPv6 ali dodelitev IPv6 na njihovi strani še ni aktivirana.
Povezljivost lahko preverite tudi od zunaj z javnim orodjem, kot je https://ipv6-test.com. Vnesite naslov IPv6 svojega strežnika in zaženite preverjanje dosegljivosti.
4.4 Preverite razreševanje DNS prek IPv6
Najprej se prepričajte, da je orodje dig nameščeno.
V AlmaLinux 10 dig ni vključen v osnovno namestitev:
sudo dnf install -y bind-utils
Na minimalnih slikah Debiana lahko paket prav tako manjka:
sudo apt install -y dnsutils
Preverite, ali lahko vaš strežnik razrešuje imena gostiteljev prek strežnika DNS IPv6:
dig AAAA google.com @2001:4860:4860::8888
Uspešen odgovor vsebuje ANSWER SECTION z enim ali več zapisi AAAA.
Korak 5: Prilagodite požarni zid za IPv6
Če na strežniku deluje programski požarni zid, morate promet IPv6 izrecno dovoliti. Številne konfiguracije požarnih zidov privzeto zajemajo samo IPv4.
Pri INTROSERV so za VPS in namenske strežnike na omrežni ravni privzeto odprta vsa vrata, z manjšim naborom izjem (e-poštna vrata 25, 465, 587, 2525 in vrata LDAP 389 so filtrirana zaradi zaščite ugleda naslovov IP). To pomeni, da za običajni spletni promet ali SSH ni treba odpirati vrat v požarnem zidu na strani ponudnika. Za požarni zid na ravni operacijskega sistema na strežniku ste še vedno odgovorni sami. Podrobnosti so v vodniku Omrežna varnost in filtriranje vrat.
Ubuntu/Debian (UFW)
V Debianu UFW ni vključen v osnovno namestitev. Po potrebi ga najprej namestite:
sudo apt install -y ufw
UFW uporablja pravila za IPv4 in IPv6, kadar je v njegovi konfiguraciji nastavljeno IPV6=yes. Preverite:
grep IPV6 /etc/default/ufw
Pričakovani izpis:
IPV6=yes
Če piše IPV6=no, odprite datoteko in vrednost spremenite:
sudo nano /etc/default/ufw
Nato znova naložite UFW:
sudo ufw reload
Če UFW še ni aktiviran, ufw reload vrne Firewall not enabled. To je v redu; pravila se bodo samodejno uveljavila, ko požarni zid končno omogočite z sudo ufw enable.
Vaša obstoječa pravila ufw allow (SSH, HTTP, HTTPS) bodo zdaj veljala tudi za IPv6.
AlmaLinux / RHEL (firewalld)
firewalld IPv6 obravnava izvorno prek svojega modela con. Če je vaš vmesnik v pravilni coni, se promet IPv6 upravlja samodejno. Preverite:
sudo firewall-cmd --get-active-zones
Za storitve, kot sta SSH in HTTPS:
sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
Če je storitev v coni že dovoljena, firewall-cmd izpiše Warning: ALREADY_ENABLED. To je običajno in ni napaka. V AlmaLinux sta ssh in dhcpv6-client v coni public privzeto dovoljena.
ICMPv6 je nujen za pravilno delovanje IPv6. Skrbi za odkrivanje sosedov, odkrivanje Path MTU in oglaševanje usmerjevalnika (router advertisements), torej za ustreznike ARP v IPv6. ICMPv6 ne blokirajte v celoti. Večina orodij za požarni zid ga privzeto dovoljuje; če pišete neposredna pravila nftables ali ip6tables, izrecno dovolite icmpv6.
Povrnitev sprememb
Ubuntu (Netplan)
Obnovite varnostno kopijo in jo uveljavite (50-cloud-init.yaml zamenjajte z dejanskim imenom datoteke):
sudo cp /etc/netplan/50-cloud-init.yaml.bak /etc/netplan/50-cloud-init.yaml sudo netplan apply
Debian (/etc/network/interfaces)
Obnovite varnostno kopijo:
sudo cp /etc/network/interfaces.bak /etc/network/interfaces sudo ifdown eth0 && sudo ifup eth0
AlmaLinux (nmcli)
Iz povezave odstranite nastavitve IPv6:
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 ne dovoli nastavitve ipv6.method ignore, dokler obstajajo statični ipv6.addresses. Če najprej nastavite metodo auto, lahko naslove pravilno izbrišete.
Onemogočanje IPv6 v celotnem sistemu (v sili)
Če morate IPv6 popolnoma izklopiti na vseh vmesnikih:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
Za trajno spremembo v /etc/sysctl.d/99-disable-ipv6.conf dodajte naslednje:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
Nato zaženite sudo sysctl -p /etc/sysctl.d/99-disable-ipv6.conf.
Odpravljanje težav
Ping6 takoj odpove z «Network unreachable»
Privzeti prehod (IPv6) manjka ali je napačen. Zaženite ip -6 route show in preverite, ali vnos default via obstaja in ustreza prehodu iz nadzorne plošče vašega ponudnika.
Naslov se prikaže, vendar je scope samo link, ne global
Naslov je bil dodan napačnemu vmesniku ali pa je v konfiguracijski datoteki tipkarska napaka v naslovu ali predponi. Pozorno preberite dodelitev svojega ponudnika.
Netplan apply vrne napako razčlenjevanja
Zamiki YAML niso pravilni. Zaženite cat -A /etc/netplan/50-cloud-init.yaml (ali z dejanskim imenom datoteke), da razkrijete znake tabulatorja (prikazani kot ^I), in jih zamenjajte s presledki.
SSH se prekine po ifdown v Debianu
Za obnovitev dostopa uporabite spletno konzolo ponudnika ali dostop VNC/IPMI. Obnovite /etc/network/interfaces iz varnostne kopije in zaženite ifup eth0.
UFW po nastavitvi IPV6=yes še vedno blokira IPv6
Pravila, dodana pred spremembo, so bila shranjena samo za IPv4. Zaženite sudo ufw reset in pravila dodajte znova; zdaj bodo veljala za obe družini.
Ukaz sudo ufw reset je destruktiven. Vsa pravila požarnega zidu ponastavi na privzeta. Preden ga zaženete, se prepričajte, katera vrata je treba znova dovoliti (na primer SSH), da se ne zaklenete ven.
Zaključek
To je vse. Vaš strežnik INTROSERV ima zdaj delujoč naslov IPv6, pravilno nastavljen privzeti prehod in požarni zid, ki zajema obe družini protokolov. Naslednji koraki: prek INTROSERV Client Area zahtevajte zapis PTR in posodobite virtualne gostitelje Nginx ali Apache, da bodo poslušali na novem naslovu IPv6.
Različica dokumenta: 1.0
Nazadnje posodobljeno: maj 2026
Lastnik: Ekipa za tehnično dokumentacijo