Probablemente el comando ping
es uno de los comandos de red más utilizados por SysAdmins. ping
se utiliza principalmente para comprobar si un host remoto está activo o no. El host remoto puede ser un servidor web, un router o una raspberry pi en nuestra red local.
¿Cómo funciona el comando ping
? Cuando ejecutamos este comando, lo que hacemos es enviar unos paquetes pequeños llamados ICMP al host remoto. Si el host remoto responde a esos paquetes, significa que está "activo" y obtendremos una salida en el comando.
Veamos algunos ejemplos de ping
.
Uso del comando ping
La mayoría de distribuciones de GNU/Linux vienen con este comando pre-instalado. Pero si algún día te encuentras que al ejecutar el comando te dice que no se encuentra, debes de saber que el paquete que debes de instalar es:
apt install iputils-ping
Para utilizar el comando, debemos de escribir el nombre del comando y un nombre del host. Este nombre de host puede ser un dominio o una IP.
Por ejemplo, hagamos un ping a fsf.org enviando paquetes ICMP de 56 bytes de tamaño:
$ ping fsf.org
PING fsf.org (209.51.188.174) 56(84) bytes of data.
64 bytes from www.fsf.org (209.51.188.174): icmp_seq=1 ttl=54 time=108 ms
64 bytes from www.fsf.org (209.51.188.174): icmp_seq=2 ttl=54 time=108 ms
64 bytes from www.fsf.org (209.51.188.174): icmp_seq=3 ttl=54 time=108 ms
64 bytes from www.fsf.org (209.51.188.174): icmp_seq=4 ttl=54 time=108 ms
^C
--- fsf.org ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5007ms
rtt min/avg/max/mdev = 107.922/108.117/108.371/0.148 ms
Si dejamos el comando hacer su trabajo, lo tendremos todo el rato ejecutándose, por lo que deberemos de parar el proceso manualmente con CTRL
+ C
.
Cuando se detiene el comando, obtenemos un resumen de la transmisión de los paquetes. Como puedes ver se ve una estadística indicando la cantidad de paquetes transmitidos, paquetes recibidos, paquetes perdidos y tiempo.
Ahora ya sabes ejecutar el comando, veamos algunas opciones interesantes.
Enviar N número de paquetes
Si quieres enviar un determinado número de paquetes y que se pare el proceso automáticamente, podemos utilizar la opción -c
:
$ ping -c10 fsf.org
PING fsf.org (209.51.188.174) 56(84) bytes of data.
64 bytes from www.fsf.org (209.51.188.174): icmp_seq=1 ttl=54 time=108 ms
64 bytes from www.fsf.org (209.51.188.174): icmp_seq=2 ttl=54 time=108 ms
64 bytes from www.fsf.org (209.51.188.174): icmp_seq=3 ttl=54 time=108 ms
64 bytes from www.fsf.org (209.51.188.174): icmp_seq=4 ttl=54 time=109 ms
64 bytes from www.fsf.org (209.51.188.174): icmp_seq=5 ttl=54 time=108 ms
64 bytes from www.fsf.org (209.51.188.174): icmp_seq=6 ttl=54 time=108 ms
64 bytes from www.fsf.org (209.51.188.174): icmp_seq=7 ttl=54 time=109 ms
64 bytes from www.fsf.org (209.51.188.174): icmp_seq=8 ttl=54 time=108 ms
64 bytes from www.fsf.org (209.51.188.174): icmp_seq=9 ttl=54 time=108 ms
64 bytes from www.fsf.org (209.51.188.174): icmp_seq=10 ttl=54 time=109 ms
--- fsf.org ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9013ms
rtt min/avg/max/mdev = 108.032/108.309/108.830/0.243 ms
Enviar paquetes durante un tiempo
También podemos enviar paquetes con ping
durante un determinado tiempo. Por ejemplo durante 5 segundos o durante 1h.
$ ping -w5 fsf.org
PING fsf.org (209.51.188.174) 56(84) bytes of data.
64 bytes from www.fsf.org (209.51.188.174): icmp_seq=1 ttl=54 time=108 ms
64 bytes from www.fsf.org (209.51.188.174): icmp_seq=2 ttl=54 time=109 ms
64 bytes from www.fsf.org (209.51.188.174): icmp_seq=3 ttl=54 time=114 ms
64 bytes from www.fsf.org (209.51.188.174): icmp_seq=4 ttl=54 time=108 ms
64 bytes from www.fsf.org (209.51.188.174): icmp_seq=5 ttl=54 time=110 ms
--- fsf.org ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4002ms
rtt min/avg/max/mdev = 108.089/109.832/113.724/2.036 ms
Modificar el tiempo de envío entre dos ping
Normalmente, entre ping
y ping
, el tiempo que pasa es un segundo. Por eso, en el ejemplo anterior se han enviado un total de 5 paquetes ya que hemos puesto que sean 5 segundos.
Pero podemos hacer que el tiempo entre paquetes sea menor, por ejemplo poniendo cada medio segundo:
ping -i 0.5 fsf.org
El valor mínimo para poner entre paquetes, es de 100ms:
Cambiar tamaño del paquete
También podemos cambiar el tamaño del paquete de ICMP para ello deberemos de usar la opción -s
:
$ ping -s 100 fsf.org
PING fsf.org (209.51.188.174) 56(84) bytes of data.
100 bytes from www.fsf.org (209.51.188.174): icmp_seq=1 ttl=54 time=108 ms
100 bytes from www.fsf.org (209.51.188.174): icmp_seq=2 ttl=54 time=109 ms
100 bytes from www.fsf.org (209.51.188.174): icmp_seq=3 ttl=54 time=114 ms
100 bytes from www.fsf.org (209.51.188.174): icmp_seq=4 ttl=54 time=108 ms
100 bytes from www.fsf.org (209.51.188.174): icmp_seq=5 ttl=54 time=110 ms
--- fsf.org ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4002ms
rtt min/avg/max/mdev = 108.089/109.832/113.724/2.036 ms
Enviar paquetes audibles
¿Cómo? ¿Audibles? Si, podemos enviar un ping
y escuchar cada vez que se envía un paquete. Esto lo podemos hacer con la opción -a
:
$ ping -a fsf.org
Comentarios