Introducción
El ping
es una de las utilidades más utilizadas para solucionar problemas, probar y diagnosticar problemas de conectividad de red.
Ping funciona enviando uno o más paquetes de solicitud de eco del Protocolo de mensajes de control de Internet (ICMP) a una IP de destino específica en la red y espera una respuesta. Cuando el destino recibe el paquete, responderá con una respuesta de eco ICMP.
Con el ping
, puede determinar si una IP de destino remota está activa o inactiva. También puede encontrar la demora de ida y vuelta en la comunicación con el destino y verificar la pérdida de paquetes.
La ping
es parte del iputils
(o iputils-ping
), que está preinstalado en casi todas las distribuciones de Linux. ping
también está disponible en Windows, macOS y FreeBSD.
Cómo utilizar el comando Ping
La sintaxis del comando ping es la siguiente:
ping [OPTIONS] DESTINATION
Para ilustrar mejor cómo funciona el comando ping, hagamos ping a google.com
:
ping google.com
La salida se verá así:
PING google.com (216.58.206.46) 56(84) bytes of data.
64 bytes from mil07s07-in-f14.1e100.net (216.58.206.46): icmp_seq=1 ttl=52 time=23.5 ms
64 bytes from mil07s07-in-f14.1e100.net (216.58.206.46): icmp_seq=2 ttl=52 time=23.3 ms
64 bytes from mil07s07-in-f14.1e100.net (216.58.206.46): icmp_seq=3 ttl=52 time=23.0 ms
64 bytes from mil07s07-in-f14.1e100.net (216.58.206.46): icmp_seq=4 ttl=52 time=23.4 ms
64 bytes from mil07s07-in-f14.1e100.net (216.58.206.46): icmp_seq=5 ttl=52 time=23.5 ms
64 bytes from mil07s07-in-f14.1e100.net (216.58.206.46): icmp_seq=6 ttl=52 time=23.8 ms
64 bytes from mil07s07-in-f14.1e100.net (216.58.206.46): icmp_seq=7 ttl=52 time=24.0 ms
64 bytes from mil07s07-in-f14.1e100.net (216.58.206.46): icmp_seq=8 ttl=52 time=23.5 ms
^C
--- google.com ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7009ms
rtt min/avg/max/mdev = 23.007/23.489/24.000/0.285 ms
El ping
resuelve el nombre de dominio en una dirección IP y comienza a enviar paquetes ICMP a la IP de destino. Si se puede acceder a la IP de destino, responderá y el comando ping imprime una línea que incluye los siguientes campos:
- El número de bytes de datos. El valor predeterminado es 56, que se traduce en 64 bytes de datos ICMP -
64 bytes
- La dirección IP del destino,
from muc11s01-in-f14.1e100.net (172.217.22.206)
- El número de secuencia de ICMP para cada paquete.
icmp_seq=1
- Tiempo para vivir. -
ttl=53
- ¿Cómo funciona TTL? - El tiempo de ping, medido en milisegundos, que es el tiempo de ida y vuelta para que el paquete llegue al host y la respuesta regrese al remitente. -
time=41.4 ms
De forma predeterminada, el intervalo entre el envío de un nuevo paquete es de un segundo.
El ping
continuará enviando paquetes ICMP a la dirección IP de destino hasta que reciba una interrupción. Para detener el comando, simplemente presione la combinación de Ctrl+C
Cuando el comando se detiene, muestra una estadística que incluye el porcentaje de pérdida de paquetes. La pérdida de paquetes significa que se han liberado datos en algún lugar de la red, lo que indica un problema dentro de la red. En caso de pérdida de paquetes, puede usar el traceroute
para identificar dónde ocurre la pérdida de paquetes.
Si ping
no devuelve una respuesta, no se ha establecido la comunicación de red. Cuando esto sucede, no siempre significa que la IP de destino está inactiva. Algunos hosts pueden tener un firewall que bloquea el tráfico ICMP o está configurado para no responder a las solicitudes de ping.
Si tiene éxito, el ping
termina con el código 0
. De lo contrario, saldrá con el código 1
o 2
. Esto puede resultar útil cuando se utiliza la ping
en un script de shell.
En las siguientes secciones, veremos las ping
Especifique la cantidad de paquetes
Como ya se mencionó, por defecto, ping
continuará enviando paquetes ICMP hasta que reciba una señal de interrupción. Para especificar la cantidad de paquetes de solicitud de eco a enviar después de lo cual saldrá el ping, use la -c
seguida de la cantidad de paquetes:
ping -c 1 DESTINATION
Por ejemplo, para hacer ping a noviello.it
solo una vez, debe usar:
ping -c 1 noviello.it
Especifica la interfaz de origen
El comportamiento predeterminado del ping
es enviar paquetes ICMP por la ruta predeterminada. Si tiene varias interfaces en su computadora, puede especificar la interfaz de origen con la opción -I
ping -I INTERFACE_NAME DESTINATION
El siguiente comando hará ping a noviello.it
utilizando em2
como interfaz de origen:
ping -I em2 noviello.it
Especifica el Protocolo de Internet
Cuando ejecute el ping
, utilizará IPv4 o IPv6, según la configuración de DNS de la máquina.
Para forzar a ping
usar IPv4, pase la -4
o use su alias ping4
ping -4 DESTINATION
Para IPv6, pase la -6
o use ping6
:
ping -6 DESTINATION
Conclusión
ping
es una utilidad de red de línea de comandos que le permite probar la conectividad de nivel IP de un host en particular en su red.
Para ver todas las opciones disponibles del ping
, escriba:
man ping