GNU/Linux >> Tutoriales Linux >  >> Linux

Comando Ping de Linux explicado con ejemplos

Ping es uno de los comandos de red más utilizados en Linux y otros sistemas operativos.

Ping se utiliza principalmente para comprobar si se puede acceder a un host remoto o no. El host remoto podría ser un servidor web, su enrutador o un sistema en su red local.

¿Cómo funciona el ping? En realidad, envía pequeños paquetes ICMP al host remoto y espera la respuesta. Si el host está activo, debería ver una respuesta.

Es como la tecnología de sonar utilizada en los submarinos. Los submarinos envían pulsos de señal de audio y esperan a que regrese el eco.

Entonces, ¿cómo se usa Ping en Linux? ¿Cuáles son las diferentes opciones del comando Ping? Déjame mostrarte algunos de los usos comunes del comando Ping.

¿Sabías que? El comando ping está escrito correctamente como PING y significa Packet Internet Groper.

Usando el comando ping en Linux

Puede usar el comando ping con la dirección IP o el nombre de host/URL.

Supongamos que hago ping a Google. Enviará paquetes ICMP de 56 bytes de tamaño a google.com.

ping google.com
PING google.com (108.177.122.102) 56(84) bytes of data.
64 bytes from 108.177.122.102 (108.177.122.102): icmp_seq=1 ttl=42 time=325 ms
64 bytes from 108.177.122.102 (108.177.122.102): icmp_seq=2 ttl=42 time=387 ms
64 bytes from 108.177.122.102 (108.177.122.102): icmp_seq=3 ttl=42 time=319 ms
64 bytes from 108.177.122.102 (108.177.122.102): icmp_seq=4 ttl=42 time=321 ms
^C
--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 319.697/338.496/387.785/28.527 ms

Debe detener manualmente el comando ping, de lo contrario, seguirá ejecutándose. Puede usar el atajo de terminal Ctrl+C para detener el comando ping en Linux, como hice en el ejemplo anterior.

Cuando detiene el comando ping, le presenta un resumen de la transmisión. Puede ver estadísticas como la cantidad de paquetes ICMP transmitidos, paquetes recibidos, paquetes perdidos, etc.

Ahora que sabe cómo hacer ping en Linux, veamos algunas de las otras opciones del comando ping.

Enviar solo N cantidad de paquetes

Si no desea que el comando ping se ejecute para siempre sin detenerlo manualmente, puede usar la opción -c.

Con esto, puede especificar la cantidad de paquetes que debe enviar el comando ping antes de detenerse automáticamente.

ping -c 2 104.248.179.115
 PING 104.248.179.115 (104.248.179.115) 56(84) bytes of data.
 64 bytes from 104.248.179.115: icmp_seq=1 ttl=50 time=315 ms
 64 bytes from 104.248.179.115: icmp_seq=2 ttl=50 time=423 ms
 --- 104.248.179.115 ping statistics ---
 2 packets transmitted, 2 received, 0% packet loss, time 1000ms
 rtt min/avg/max/mdev = 315.208/369.190/423.172/53.982 ms

Enviar ping solo por tiempo limitado

Además de establecer la cantidad de paquetes a enviar, también puede establecer durante cuánto tiempo se enviarán los paquetes.

Por ejemplo, si desea enviar paquetes de ping durante solo 5 segundos, puede usarlo así:

ping -w 5 google.com
 PING google.com (64.233.177.138) 56(84) bytes of data.
 64 bytes from yx-in-f138.1e100.net (64.233.177.138): icmp_seq=1 ttl=40 time=407 ms
 64 bytes from yx-in-f138.1e100.net (64.233.177.138): icmp_seq=2 ttl=40 time=320 ms
 64 bytes from yx-in-f138.1e100.net (64.233.177.138): icmp_seq=3 ttl=40 time=323 ms
 64 bytes from yx-in-f138.1e100.net (64.233.177.138): icmp_seq=4 ttl=40 time=472 ms
 64 bytes from yx-in-f138.1e100.net (64.233.177.138): icmp_seq=5 ttl=40 time=406 ms
 --- google.com ping statistics ---
 5 packets transmitted, 5 received, 0% packet loss, time 4002ms
 rtt min/avg/max/mdev = 320.634/385.993/472.056/57.309 ms

Cambiar el intervalo de tiempo entre dos pings

De forma predeterminada, ping envía los paquetes en un intervalo de un segundo. Puede cambiar este intervalo de tiempo con la opción -i.

Para enviar los paquetes ICMP con un intervalo de 3 segundos, puede usar el comando Ping como este:

ping -i 3 31.13.90.36

También puede disminuir el intervalo de tiempo entre pings.

ping -i 0.5 31.13.90.36

Sin embargo, si intenta disminuir el intervalo de tiempo por debajo de 0,2 segundos (200 ms), verá un error:

ping -i 0.1 31.13.90.36
PING 31.13.90.36 (31.13.90.36) 56(84) bytes of data.
ping: cannot flood; minimal interval allowed for user is 200ms

No te preocupes. Todavía puede hacer ping con un intervalo de menos de 200 ms. Pero para hacer eso, necesita usar el ping con privilegios de root.

sudo ping -i 0.1 31.13.90.36
PING 31.13.90.36 (31.13.90.36) 56(84) bytes of data.
64 bytes from 31.13.90.36: icmp_seq=1 ttl=49 time=470 ms
64 bytes from 31.13.90.36: icmp_seq=2 ttl=49 time=372 ms

Cambiar el tamaño del paquete

El tamaño de paquete ICMP predeterminado enviado por Ping es de 56 bytes. Esto también se puede cambiar con la ayuda del comando -s.

ping -s 100 31.13.90.36
 PING 31.13.90.36 (31.13.90.36) 100(128) bytes of data.
 108 bytes from 31.13.90.36: icmp_seq=1 ttl=49 time=234 ms
 108 bytes from 31.13.90.36: icmp_seq=2 ttl=49 time=257 ms
 108 bytes from 31.13.90.36: icmp_seq=3 ttl=49 time=280 ms
 ^C
 --- 31.13.90.36 ping statistics ---
 3 packets transmitted, 3 received, 0% packet loss, time 2002ms
 rtt min/avg/max/mdev = 234.208/257.352/280.424/18.867 ms

Ataque DoS con Ping flooding, también conocido como Ping of Death

Uno de los ataques DoS más simples es el Ping of Death. En este tipo de ataque, el atacante envía una gran cantidad de solicitudes de ping en un lapso de tiempo muy corto. Si el servidor no está bien configurado, se derrumbará al manejar la solicitud de ping y el sitio web dejará de funcionar.

El comando ping tiene una 'función' incorporada para esto. Se llama inundación de ping y se puede lograr con la opción -f. Necesitará derechos de sudo para ejecutar esta opción con intervalo cero.

sudo ping -f google.com 
 PING google.com (108.177.122.101) 56(84) bytes of data.
 …………………..^C    
 --- google.com ping statistics ---
 1436 packets transmitted, 1413 received, 1% packet loss, time 22837ms
 rtt min/avg/max/mdev = 313.887/326.102/388.178/7.464 ms, pipe 26, ipg/ewma 15.914/323.456 ms

Cuando ejecute este comando, verá que aparecen y desaparecen algunos puntos en la salida. Cada ‘.’ denota una solicitud, mientras que la respuesta es un retroceso (por eso desaparecen los puntos).

Esta opción de ping de inundación es útil para probar la capacidad de carga de un servidor.

Sugerencia adicional:envíe pings audibles

Puede enviar pings audibles con la opción -a. Con esto, escuchará un pitido por cada ping exitoso.

ping -a google.com

Tenga en cuenta que no todas las distribuciones de Linux están configuradas para hacer el pitido. Lo probé en Ubuntu 18.04 y pude escuchar el pitido.

Resolución de problemas del comando Ping

Hasta ahora, lo que hemos visto son los ejemplos exitosos del comando ping. Pero eso no sucederá todo el tiempo. Veamos algunos de los errores comunes que puede ver y comprendamos el motivo de esos errores.

Sin respuesta para ping

Es posible que observe que ciertos hosts no responden a la solicitud de ping. Parece que el comando ping se ha colgado porque no hay respuesta. El comando simplemente permanece allí, ni siquiera se agota.

Si finaliza el comando ping, verá algunas estadísticas extrañas.

ping intel.com
PING intel.com (13.91.95.74) 56(84) bytes of data. 
 ^C
--- intel.com ping statistics ---
100 packets transmitted, 0 received, 100% packet loss, time 101362m

Como puede ver, se transmitieron 100 paquetes pero no se recibió respuesta para ninguno de ellos.

Lo más probable es que algunos servidores descarten los paquetes ICMP. Esta es una medida de seguridad para evitar la inundación de ping.

Host de destino inalcanzable

Este error puede ocurrir debido a una de las dos razones:

  • O el sistema local no tiene ruta al host remoto
  • o el enrutador de punto final no tiene ruta al host remoto

Si solo ve el error "host de destino inalcanzable", significa que su sistema no pudo encontrar una ruta al host remoto.

Por otro lado, si ve el error en la parte "Respuesta de " de la respuesta, significa que el paquete se envió fuera de su red pero no pudo llegar a su destino.

Algunas veces los servidores también bloquean el tráfico ICMP que podría mostrar este error.

Tiempo de espera de la solicitud

Este error significa que los paquetes llegaron al servidor remoto pero la respuesta no pudo llegar a su sistema. El problema podría ser la pérdida de paquetes o un error de enrutamiento.

¿Listo para hacer ping?

Espero que este tutorial te haya ayudado a comprender mejor el comando ping de Linux.

Si tiene preguntas o sugerencias, deje un mensaje en la sección de comentarios.


Linux
  1. Comando de apagado de Linux explicado con ejemplos

  2. Comando nslookup de Linux explicado con ejemplos

  3. Comando Traceroute de Linux, explicado con ejemplos

  4. Comando JQ en Linux con ejemplos

  5. Ejemplos de comandos ping en Linux

Comando wget de Linux explicado con ejemplos

Comando Tr en Linux explicado con ejemplos

w Comando explicado con ejemplos en Linux

Ejemplos de comandos ping de Linux

Explicación del comando tee de Linux (con ejemplos)

Explicación del comando csplit de Linux (con ejemplos)