Od jednego z czytelników dostałem wczoraj prośbę o pomoc – jego VPS (akurat w DigitalOcean, założony z mojego linka partnerskiego) zaczął się dziwnie zachowywać. Niby wszystko działa, ale np. operacja aktualizacji systemu trwa strasznie długo, tzn. system jakby „długo myślał” przed połączeniem z każdym adresem, który dodatkowo wygląda dość dziwnie.

Od razu skojarzyłem to z protokołem IPv6, który w końcu zapewne całkowicie wyeliminuje IPv4, ale na razie mniej doświadczonym potrafi sprawić więcej problemów, niż teoretycznie pożytku z niego, dlatego jako doraźne rozwiązanie zaproponowałem tymczasowe wyłączenie IPv6, co rozwiązało problem…

Wyłączamy IPv6 w systemie Debian

Przed IPv6 raczej nie ma ucieczki, i prędzej czy później każdy z Was będzie musiał go na swojej maszynie włączyć/skonfigurować (może kiedyś napiszę jakiś poradnik na ten temat), ale mimo upływu lat są sytuacje – jak opisana powyżej, że może zajść potrzeba wyłączenia wsparcia dla tego protokołu.

Najprościej jest usunąć (lub zakomentować) linijki odpowiedzialne za obsługę IPv6 dla danego interfejsu sieciowego:

sudo nano /etc/network/interfaces

I np. dla podstawowej karty sieciowej (eth0) prawdopodobnie znajdziemy tam zapis w stylu:

iface eth0 inet6 static
        address ABCD:ABCD:0000:1234:0000:0000:1234:1234
        netmask 64
        gateway ABCD:ABCD:0000:1234:0000:0000:0000:0001
        autoconf 0
        dns-nameservers 2001:4860:4860::8844 2001:4860:4860::8888 8.8.8.8

Wystarczy skasować te linijki, lub – tak lepiej, bo w przyszłości wystarczy tylko odkomentować – zakomentować je, dodając przed każdą z nich znak #:

#iface eth0 inet6 static
#        address ABCD:ABCD:0000:1234:0000:0000:1234:1234
#        netmask 64
#        gateway ABCD:ABCD:0000:1234:0000:0000:0000:0001
#        autoconf 0
#        dns-nameservers 2001:4860:4860::8844 2001:4860:4860::8888 8.8.8.8

Na koniec restart sieci:

sudo /etc/init.d/networking restart

Jeśli okazałoby się, że to za mało, i nadal jest jakiś problem, to możecie podejść do sprawy globalnie, i wyłączyć całkowicie obsługę IPv6 w systemie:

sudo nano /etc/sysctl.conf

I gdzieś na samym dole dodajemy:

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

Na koniec jeszcze „wczytujemy do systemu” zmiany:

sudo sysctl -p

Z tego co kojarzę to są jeszcze inne metody, ale ja osobiście jeśli już z jakichś przyczyn muszę wyłączyć na serwerze IPv6, to korzystam z metod opisanych powyżej…

(!) Zgłoś błąd na stronie
Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!

Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!

Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.

Patryk

CEO Webinsider.pl, a do tego CTO, CIO, CFO, CMO, CSO, COO i CRO ;-)
Pasjonat nowych technologii - od sprzętu po oprogramowanie, od serwerów po smartfony i rozwiązania IoT. Potencjalnie kiepski bloger, bo nie robi zdjęć "talerza" zanim zacznie jeść.

Dumny przyjaciel swoich psów :-)
Envato Elements - pobieraj co chcesz, ile chcesz