Independientemente del tipo de usuario de Linux que sea (principiante o profesional), hay ciertas herramientas que debe conocer. Una de ellas es Ping. En este tutorial, discutiremos los fundamentos de esta herramienta usando algunos ejemplos fáciles de entender. Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos en el artículo aquí han sido probados en una máquina Ubuntu 16.04 LTS.
Comando ping de Linux
En términos más básicos, el comando ping le permite comprobar si un host remoto está vivo y responde. A continuación, la sintaxis de la herramienta:
ping destination
Y así es como lo explica la página man:
ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram to elicit
an ICMP ECHO_RESPONSE from a host or gateway. ECHO_REQUEST datagrams
(``pings'') have an IP and ICMP header, followed by a struct timeval
and then an arbitrary number of ``pad'' bytes used to fill out the
packet.
ping6 is IPv6 version of ping, and can also send Node Information
Queries (RFC4620). Intermediate hops may not be allowed, because IPv6
source routing was deprecated (RFC5095).
A continuación, algunos ejemplos de estilo Q&A que deberían darte una buena idea de cómo funciona el comando ping.
P1. Cómo usar el comando ping?
El uso básico es bastante fácil – simplemente ejecuta el comando ‘ping’ con el destino como entrada.
Por ejemplo:
ping howtoforge.com
El siguiente es el resultado de este comando producido en mi sistema:
Nota que por defecto, el comando seguirá ejecutándose hasta que lo detengas mediante Ctrl+C.
Q2. Cómo cambiar el intervalo de tiempo entre los paquetes de ping?
Por defecto, hay un intervalo de un segundo entre los paquetes de ping. Sin embargo, si lo deseas, puedes personalizar este retardo utilizando la opción de línea de comandos -i.
Por ejemplo, el siguiente comando hace que haya un intervalo de 3 segundos:
ping -i 3 howtoforge.com
Y el siguiente comando envía paquetes con un retardo de medio segundo.
ping -i 0.5 howtoforge.com
Nota que sólo el super-usuario puede establecer el intervalo a valores inferiores a 0,2 segundos
Q3. ¿Cómo cambiar el tamaño del paquete de ping?
Por defecto, el número de bytes de un paquete de ping es de 56 (64 si se incluyen 8 bytes de la cabecera ICMP). Sin embargo, si quieres, puedes cambiar este valor, algo que puedes hacer usando la opción de línea de comandos -s.
Por ejemplo, para enviar un paquete de 80 bytes (88 incluyendo la cabecera ICMP), usa el siguiente comando:
ping -s 80 howtoforge.com
Q4. Cómo hacer que ping envíe un número determinado de paquetes?
El comportamiento por defecto de ping es seguir enviando paquetes hasta que sea interrumpido por el usuario. Sin embargo, si lo desea, puede forzar a ping a dejar de ejecutarse después de enviar un número determinado de paquetes. Esto se puede hacer utilizando la opción de línea de comandos -c.
Por ejemplo, el siguiente comando enviará 3 paquetes y luego se detendrá.
ping -c 3 howtoforge.com
Q5. Cómo lanzar una inundación de paquetes usando ping?
Sí, el comando ping también ofrece una opción para lanzar una inundación de paquetes. Esto se puede hacer utilizando la opción de línea de comandos -f.
ping -f howtoforge.com
Aquí está lo que dicen los documentos oficiales sobre esta opción:
For every ECHO_REQUEST sent a period ``.'' is
printed, while for ever ECHO_REPLY received a backspace is
printed. This provides a rapid display of how many packets are
being dropped. If interval is not given, it sets interval to
zero and outputs packets as fast as they come back or one hun?
dred times per second, whichever is more. Only the super-user
may use this option with zero interval.
Q6. Cómo hacer que ping imprima la marca de tiempo antes de cada línea?
Hay una opción (-D) que te permite hacer esto. La marca de tiempo que se imprime es una combinación de tiempo unix y microsegundos (como en gettimeofday).
ping -D howtoforge.com
Aquí hay una captura de pantalla de esta opción en acción:
Q7. Cómo establecer un tiempo de espera duro para el ping?
Puedes especificar un tiempo límite para que el ping salga. Esto se puede hacer utilizando la opción de línea de comandos -w que requiere un valor numérico que representa el número de segundos.
Por ejemplo, el siguiente comando ping se detendrá después de 3 segundos:
ping -w 3 howtoforge.com
Así es como la documentación oficial explica esta opción:
Specify a timeout, in seconds, before ping exits regardless of
how many packets have been sent or received. In this case ping
does not stop after count packet are sent, it waits either for
deadline expire or until count probes are answered or for some
error notification from network.
Q8. Cómo establecer un tiempo de espera suave para el ping?
Mientras que la opción -w se asegura de que el ping se detenga en cualquier caso después de que el plazo haya expirado, hay otra opción (-W, en mayúsculas) que también hace que el ping se detenga pero sólo cuando no hay respuesta del lado de destino.
ping -W 3 howtoforge.com
Así es como la página man explica el comportamiento en este caso:
Time to wait for a response, in seconds. The option affects only
timeout in absence of any responses, otherwise ping waits for
two RTTs.
Conclusión
Ping es una herramienta importante que casi seguro se utiliza en la depuración de problemas relacionados con la red. En este tutorial, hemos discutido algunas características principales (opciones de línea de comandos) de esta utilidad. Practícalas, y una vez que hayas terminado, dirígete a la página man de la herramienta para saber más sobre ella.