¿Cuál es la diferencia entre ping localhost y ping 127.0.0.1?

Pregunta:

Después de ejecutar lo siguiente para deshabilitar las respuestas de ping:

# sysctl net.ipv4.icmp_echo_ignore_all=1
# sysctl -p

Obtengo resultados diferentes al hacer ping a localhost frente a 127.0.0.1

# ping -c 3 localhost
PING localhost(localhost (::1)) 56 data bytes
64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.029 ms
64 bytes from localhost (::1): icmp_seq=2 ttl=64 time=0.035 ms
64 bytes from localhost (::1): icmp_seq=3 ttl=64 time=0.101 ms

--- localhost ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2042ms
rtt min/avg/max/mdev = 0.047/0.072/0.101/0.022 ms

El ping 127.0.0.1 falla:

ping -c 3 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.

--- 127.0.0.1 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2032ms

¿Por qué estos resultados son diferentes?

Respuesta:

El comando ping muestra la dirección a la que resolvió el nombre. En este caso, se resolvió en la dirección de host local IPv6, ::1 . Por otro lado, 127.0.0.1 es una dirección IPv4, por lo que explícitamente hace que ping use IPv4.

El sysctl que usó solo afecta los pings de IPv4, por lo que obtiene respuestas para ::1 , pero no para 127.0.0.1 .

La dirección que obtiene al resolver localhost depende de cómo esté configurado su DNS. localhost probablemente esté configurado en /etc/hosts , pero en teoría podría obtenerlo de un servidor de nombres real.


En cuanto a cómo eliminar los pings de IPv6, es posible que deba buscar en ip6tables , ya que no parece haber un sysctl similar para IPv6. O simplemente deshabilite IPv6 por completo, si no lo está usando en su red. (Aunque, por supuesto, esa no es una idea muy prospectiva, pero es factible si no la está usando actualmente de todos modos).

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım