Zakázat IPv6 v DebianuMůže to pomoci s řešením problémů se serverem, který nesprávně rozpoznává svá DNS jména, se zastaralou aplikací naslouchající na nesprávném serverovém zásobníku nebo se špatně nakonfigurovaným poskytovatelem směrování. Ale nedělal bych to jako první krok. Pokud problém pramení z nefunkčního DNS serveru nebo chybějící trasy, vypnutí IPv6 pouze maskuje skutečný problém.
V tomto článku nejprve zkontrolujeme, zda je IPv6 skutečně příčinou, otestujeme směrování a rozlišení DNS a poté se podíváme, jak jej dočasně nebo trvale deaktivovat a zároveň si zachovat cestu zpět.

Před vypnutím IPv6 zkontrolujte, zda jej počítač skutečně používá.
Začněte pohledem na IPv6 adresy a trasu. V Debianu zůstává nejčitelnějším příkazem ip :
zobrazit ip -6 adresu
Zobrazení trasy IP-6
Pokud vidíte globální adresu, často v 2xxx: Nebo 3xxx:a výchozí trasu k ::/0Zařízení pravděpodobně umí výstup IPv6. Pokud vidíte pouze… fe80::Máte hlavně lokální adresy odkazů. Není to stejná situace.
Dále zkontrolujte, co systém vybere při rozpoznávání názvu:
getent ahosts debian.org
dotaz resolvectl na debian.org
Pokud odpovědi IPv6 dorazí jako první, ale připojení IPv6 se neobjeví následovně, může dojít ke zpomalení, časovým limitům nebo chybám, které připomínají problém s aplikací. V tomto případě si přečtěte návod k… Ukládání DNS do mezipaměti v Linuxu může také pomoci oddělit lokální mezipaměť, rozlišení a skutečnou konektivitu.
Testujte IPv4 a IPv6 samostatně
Před změnou konfigurace sítě proveďte jednoduchý test vynucením každého zásobníku:
ping -4 -c 3 debian.org
ping -6 -c 3 debian.org
S kučeraTo je ještě relevantnější pro webovou aplikaci:
curl -4 -I https://www.debian.org/
curl -6 -I https://www.debian.org/
Pokud IPv4 reaguje rychle a IPv6 blokuje, máte užitečný signál. Zkontrolujte také rozhraní, které přenáší trasu, zejména na serveru s více síťovými kartami:
IP trasa získat 1.1.1.1
ip -6 trasa získat 2606:4700:4700::1111
Na vzdáleném serveru zatím neměňte konfiguraci, pokud nemáte záložní konzoli, KVM, IPMI, přístup poskytovatele nebo alespoň otevřenou SSH relaci. Změna v síti, která přeruší vaši jedinou relaci, může nastat rychle.
Dočasné zakázání IPv6 pomocí sysctl
Pro krátký test použijte sysctlTo vám umožní zjistit, zda příznak zmizí, aniž byste museli okamžitě upravovat konfigurační soubory.
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
Na některých počítačích také kontroluji příslušné rozhraní. Nahrazuji eth0 skutečným názvem vašeho rozhraní, viditelným pro ip odkaz :
ip odkaz
sudo sysctl -w net.ipv6.conf.eth0.disable_ipv6=1
Pak restartujte testy:
zobrazit ip -6 adresu
ping -6 -c 3 debian.org
curl -6 -I https://www.debian.org/
Chcete-li se okamžitě vrátit zpět:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0
sudo sysctl -w net.ipv6.conf.eth0.disable_ipv6=0
Vždy preferuji tento dočasný krok před trvalou změnou. Vyhne se tak nutnosti restartovat server s konfigurací, která nebyla plně ověřena.
Trvalá deaktivace v Debianu
Pokud test potvrdí, že váš server skutečně potřebuje běžet bez IPv6, vytvořte v /etc/sysctl.dVyhněte se náhodné úpravě systémového souboru bez zálohy.
printf '%sn'
'net.ipv6.conf.all.disable_ipv6 = 1'
'net.ipv6.conf.default.disable_ipv6 = 1'
sudo tee /etc/sysctl.d/99-disable-ipv6.conf
Dále použijte nastavení:
sudo sysctl --system
Zkontrolujte výsledek:
sysctl net.ipv6.conf.all.disable_ipv6
sysctl net.ipv6.conf.default.disable_ipv6
zobrazit ip -6 adresu
Zobrazení trasy IP-6
Pokud se chcete vrátit do předchozího stavu, smažte soubor a resetujte hodnoty na nulapak znovu načtěte sysctl:
sudo rm /etc/sysctl.d/99-disable-ipv6.conf
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0
sudo sysctl -w net.ipv6.conf.eth0.disable_ipv6=0
sudo sysctl --system
Na serveru se statickou IP adresou zkontrolujte také konfiguraci sítě Debian. Nesprávně nakonfigurovaná trasa, brána nebo DNS může vyvolat dojem, že problém je v IPv6, i když základní konfigurace je jednoduše neúplná. Tuto část jsem podrobně popsal v článku o pevná IP adresa v Debianu.
Monitorování služeb po změně
Po změně IPv6 se nespoléhejte pouze na ping. Zkontrolujte, které služby na serveru naslouchají:
sudo ss -ltnp
systemctl --selhalo
journalctl -p varování..alert -b --no-pager
Věnujte zvláštní pozornost službám, které naslouchaly reverzní proxy, monitorovací agenti, VPN, kontejnery a firewally. Informace o tomto ovládání naleznete v článku o otevírání portů v Linuxu pomocí ss a netstat je dobrým doplňkem.
Pokud se služba nezdaří správně restartovat, použijte před úpravou síťového zásobníku protokoly:
journalctl -u název-služby -b --no-pager
journalctl -b -p varování..alert --no-pager
Průvodce po journalctl a protokoly z posledního spuštění vám pomůže izolovat, co se změnilo od posledního spuštění.
Když ponechám IPv6 aktivní
IPv6 deaktivuji pouze tehdy, pokud jasný test ukáže, že narušuje očekávanou službu, nebo pokud jej síťové prostředí správně nepodporuje. Na moderním počítači, VPS, reverzní proxy, poštovním serveru, VPN nebo cloudové infrastruktuře může být IPv6 používán více komponentami, než si myslíte.
Než si ho natrvalo ostříháte, mějte na paměti toto pořadí:
- zkontrolujte adresy pomocí
zobrazit ip -6 adresu; - zkontrolovat trasu s
Zobrazení trasy IP-6; - otestujte DNS a připojení k
getent,resolvectl,ping -6Azvlnění -6; - dočasně deaktivovat pomocí
sysctl -w; - řídicí služby a přístavy;
- teprve poté nastavení uložte trvale.
Užitečné zdroje: Dokumentace Debian Wiki IPv6, manuál k sysctl, Nastavení sítě IPv6 v jádru Linuxu, Manuál k ip-route v Debianu A Manuál k Debianu resolvectl.