127.0.0.1:
127.0.0.1 jest domyślnym sprzężeniem zwrotnym większości systemów. Adres sprzężenia zwrotnego to adres używany przez system do sprawdzania poprawności stosu sieciowego systemu operacyjnego.
Adres pętli zwrotnej dla IPv4 może przyjmować dowolną wartość w podsieci 127.0.0.0/8
Adres pętli zwrotnej dla IPv6 może przyjmować dowolną wartość w podsieci, ::1/128
ping
każda wartość w tym zakresie powinna działać, jeśli stos sieci działa na systemie operacyjnym.
localhost:
localhost
to nazwa hosta, to rodzaj nazwy domeny, ale lokalnej dla twojego komputera.
Ta nazwa hosta domyślnie wskazuje sprzężenie zwrotne IPv4 i IPv6, które często 127.0.0.1
lub ::1
.
localhost
adres można łatwo zmienić edytując plik /etc/hosts
.
Jeśli twój system korzysta z usługi systemd-resolved
, ta usługa będzie obsługiwać sposób rozwiązania localhost.
Zgodnie z dokumentacjąsystemd-resolved
:
Nazwy hostów „localhost” i „localhost.localdomain” (jak również każda nazwa hosta kończąca się na „.localhost” lub „.localhost.localdomain”) są tłumaczone na adresy IP 127.0.0.1
i::1
ping
Podczas próby pingowania nazwy hosta lub nazwy domeny poprosi system operacyjny o rozpoznanie tej nazwy hosta lub nazwy domeny. W twoim przypadku wyłączyłeś, icmpv4
ale localhost jest rozpoznawany jako pętla zwrotna IPv6 i pętla zwrotna IPv4, ale tylko odpowiedź pętli zwrotnej IPv6.
Różnica polega na tym, że w jednym przypadku próbujesz wysłać polecenie ping do adresu IP, a w innym przypadku pingujesz nazwę hosta, która może przyjąć kilka wartości.
Wyłącz icmpv6
Jeśli nie potrzebujesz IPv6, radzę go wyłączyć. Podwoi to całą pracę, którą należy wykonać przy zaporze ogniowej i konfigurowaniu usług:
sysctl -w net.ipv6.conf.all.disable_ipv6=0
Jeśli nadal chcesz obsługiwać IPv6 i chcesz tego uniknąć icmpv6
, możesz użyć ip6tables
:
ip6tables -A INPUT -p icmpv6 --icmpv6-type echo-request -j DROP