GNU/Linux >> Tutoriales Linux >  >> Linux

Ejemplos prácticos de comando ping en Linux

Una herramienta indispensable para la administración de redes es el comando Ping en Linux. Es posible que haya utilizado ping antes para la resolución de problemas básicos, pero ¿qué hace este comando?

¿No eres un lector? ¡Mira este video tutorial relacionado! ¿No ve el video? Asegúrate de que tu bloqueador de anuncios esté deshabilitado.

El ping El comando envía solicitudes del Protocolo de mensajes de control de Internet (ICMP) a hosts remotos o locales y espera una respuesta. Ninguna respuesta podría indicar un problema con la conexión o los propios hosts.

¡Siga leyendo y explore las formas prácticas de usar el comando ping en Linux!

Requisitos

Este tutorial será una demostración práctica. Si desea seguir, asegúrese de tener una computadora Linux con conexión a Internet. Este tutorial utiliza una computadora con Ubuntu 20.04.

Además, asegúrese de haber abierto una sesión de terminal en su computadora con Linux.

Comprobación de la conectividad de la red local

Imagina que estás desarrollando una aplicación web. La prueba falla cuando intenta acceder a la aplicación a través de la dirección de bucle invertido del host (127.0.0.1). Antes de tirarte de los pelos para solucionar problemas de la aplicación, asegúrate de que el protocolo TCP/IP funciona internamente usando el ping comando.

Las direcciones de loopback predeterminadas son 127.0.0.1 y 0:0:0:0:0:0:0:1 (o ::1) para IPv4 e IPv6, respectivamente.

Para verificar la conectividad de la dirección de bucle invertido, ejecute el siguiente ping comando seguido de la dirección de loopback en el terminal. Este comando demuestra el uso más básico del ping comando en Linux.

ping 127.0.0.1

Y si el bucle invertido funciona bien, debería ver un resultado similar a la captura de pantalla a continuación.

Alternativamente, haciendo ping al localhost hostname debería dar el mismo resultado porque se resuelve en la dirección de bucle invertido de forma predeterminada.

Para terminar el ping comando, presione CTRL+C en la terminal. De lo contrario, el comando ping se ejecutará continuamente.

Nota:no presione CTRL+Z para detener el comando ping. Si lo hace, detendrá el comando, pero el proceso seguirá ejecutándose en segundo plano.

Comprender la salida de Linux del comando Ping

Antes de continuar, se beneficiaría de comprender el resultado de forma explícita en lugar de interpretarlo únicamente como "funciona". Consulte la imagen a continuación y el desglose de valores que sigue.

  • A (bytes ):muestra el tamaño de la solicitud de eco ICMP (paquete) en bytes.
  • B (from ) – Muestra la dirección IP del host de destino from donde el ping el comando recibe la respuesta.
  • C (icmp_seq ) – Indica el orden de transmisión del paquete. Como puede ver, ping envía las solicitudes ICMP en secuencia. El valor muestra icmp_seq=N , donde N es el número de pedido.
  • D (TTL ):muestra el valor de tiempo de vida (TTL) de la solicitud ICMP. El valor predeterminado es 64, lo que significa que la solicitud solo puede vivir hasta un máximo de 64 saltos y caducará después. El valor máximo posible es 255.
  • E (time ) – El tiempo total (milisegundos) transcurrido desde que la solicitud llegó al destino y regresó al origen. Este valor también se conoce como Tiempo de ida y vuelta (RTT). Observe que el time los valores son inferiores a 0,1 milisegundos en este ejemplo, ya que el destino es la misma máquina. El time el valor aumenta naturalmente cuando el ping los destinos son remotos o tienen una dirección de Internet.
  • F (statistics ) – Muestra el resumen y las estadísticas del ping resultados del comando. El resumen muestra la cantidad de paquetes transmitidos y recibidos, el porcentaje de pérdida de paquetes y el tiempo total. La línea inferior muestra el mínimo, el promedio (valor medio), el máximo y la desviación estándar del RTT total.

Forzar la versión del protocolo de Internet

El comando ping usa el IPv4 por defecto. Pero, ¿qué sucede si está probando la compatibilidad de su aplicación con IPv6? Para obligar al comando ping a usar IPv6, debe especificar la opción -6 en su comando ping en Linux, como puede ver en el código a continuación.

ping -6 localhost

Como puede ver a continuación, la respuesta from muestra que la respuesta provino de la dirección de loopback IPv6 (::1).

En lugar de la opción -6, la opción -4 obliga al ping a usar IPv4. Pero dado que el ping predeterminado es IPv4, normalmente no es necesario especificar la opción -4.

Limitación del número de respuestas

En los ejemplos anteriores, tenía que presionar CTRL+C para finalizar el comando ping porque, de lo contrario, se ejecutaría continuamente.

La opción -c le permite especificar el número de respuestas que recibe el comando ping antes de que se detenga. ¿Por qué usar esta opción? En algunos casos, es posible que desee probar cómo responde su sistema a 10, 100, 1000 paquetes ICMP, etc.

Ejecute el siguiente comando para enviar cinco paquetes ICMP al host de destino. Reemplace 5 con el número de respuestas ICMP a recibir antes de detenerse.

ping -c 5 localhost

Como puede ver a continuación, el comando ping se detuvo después de la quinta solicitud (icmd_seq=5) y no fue necesario presionar CTRL+C para finalizarlo.

Ajuste del intervalo de solicitud

Suponga que desea probar la conexión de red entre dos dispositivos y uno de ellos tiene poco ancho de banda. En este caso, puede aumentar el intervalo entre cada solicitud para que el segundo dispositivo tenga tiempo suficiente para procesar el paquete ICMP actual.

El ping El comando envía la solicitud ICMP posterior un segundo después de completar la anterior de forma predeterminada. Para ajustar el retraso, debe especificar el -i opción seguida del valor de retraso en segundos.

Por ejemplo, ejecute el siguiente ping Comando para enviar cinco solicitudes ICMP con un intervalo de dos segundos entre solicitudes.

ping -c 5 -i 2 localhost

Otro ejemplo, ejecute el siguiente ping comando para enviar cinco solicitudes ICMP con un intervalo de medio segundo entre cada solicitud.

ping -c 5 -i 0.5 localhost

La comparación de los resultados de ambos comandos con diferentes intervalos muestra la diferencia entre el total time valores.

Simulación de un ataque de inundación

Una inundación de ping es un tipo de ataque de denegación de servicio (DoS) en el que el atacante intenta abrumar un dispositivo objetivo con paquetes ICMP. El ataque tiene como objetivo abrumar a la máquina objetivo para que responda a tantas solicitudes que se sobrecargue y no esté disponible para los usuarios legítimos.

Puede simular un ataque de inundación para probar cómo responde su sistema a un ataque. Sin embargo, no te preocupes. La simulación de inundación de ping está controlada y puede detenerla en cualquier momento presionando CTRL+C.

Ejecute el siguiente comando en su máquina local para ver cuántas solicitudes puede manejar su dispositivo por segundo. El -f opción significa enviar varios paquetes de ping rápidamente y sin límite arbitrario.

Reemplace localhost con la dirección IP o el nombre de host de la aplicación que desea probar. Este ejemplo simula la inundación de ping solo en el host local. Deje que el comando ping se ejecute durante unos cinco segundos y luego presione CTRL+C para terminar.

El comando ping -f requiere que usted sea el usuario raíz o tenga privilegios de sudo.

ping -f localhost

Como puede ver a continuación, el comando ping logró enviar y recibir 124,685 Paquetes ICMP dentro de 4276 milisegundos con 0% paquete perdido. Bastante bien, ¿eh? Pero, en un caso de uso de la vida real, verá alguna pérdida de paquetes. La pérdida de paquetes es inevitable porque la red no es perfecta.

Comprobación de la conectividad a Internet

Todo el mundo usa Internet de alguna manera, ¿verdad? Suponga que intenta cargar un sitio web usando su navegador, pero el tiempo de carga de la página parece lento. El síntoma indicaría que la resolución de DNS está funcionando, pero algo afecta la velocidad de la red.

El diagnóstico del problema sin herramientas de terceros incluiría el ping dominio. El uso del comando es el mismo que cuando prueba la conectividad de la red local. Pero en lugar de apuntar a la dirección de bucle invertido, especificaría una IP pública o una dirección web.

Ejecute el siguiente comando para hacer ping a un sitio web público externo. Reemplace adamtheautomator.com con otra dirección web como desees.

ping -c 5 adamtheautomator.com

Desde el principio, notará que el valor del tiempo es relativamente más alto que cuando hace ping al host local. Este aumento en el tiempo dedicado se debe a la dirección de destino adamtheautomator.com no está dentro del mismo host y ni siquiera en la misma red.

En los pasos anteriores, su comando ping es exitoso, pero en el uso real, hay momentos en que el comando ping fallará por muchas razones posibles.

Los siguientes son algunos errores comunes y cómo solucionarlos.

  • Host de destino inaccesible – Este error significa que no hay ruta al host de destino. Este error puede ocurrir si el host o el dominio están inactivos.
  • Solicitud agotada – Este error significa que la solicitud al host de destino tardó demasiado (más de 4 segundos o 4000 milisegundos) y se agotó el tiempo de espera de la conexión. Este error puede ocurrir si el host de destino está demasiado ocupado para responder, un firewall bloquea la conexión o hardware de red defectuoso (cable, enrutador, etc.).
  • Host desconocido – Este error significa que el DNS no puede resolver el nombre de host en una dirección IP. Compruebe que ha introducido el nombre de host correcto. Si sospecha que su enrutador podría no estar funcionando correctamente, intente reiniciar su enrutador.
  • TTL caducado en tránsito – Este error significa que la solicitud ICMP caducó antes de llegar a su destino. Su paquete de ping se reduce a cero (0) antes de llegar al host de destino. En la mayoría de los casos, una mala configuración en su tabla de enrutamiento puede causar este error. Considere revisar su tabla de rutas para ver si hay algún problema.

En caso de que no lo supieras:los jugadores se refieren al ping como su conexión al servidor del juego en la comunidad de jugadores. Un ping bajo significa una conexión más receptiva, especialmente en juegos de ritmo rápido. Un ping alto indica una conexión menos receptiva y puede hacer que el juego se sienta lento.

Algunos proveedores de servicios de Internet (ISP) devuelven una página de búsqueda en lugar de un mensaje de error cuando intenta conectarse a un sitio web que no existe. Es posible que obtenga un resultado falso positivo porque está recibiendo una respuesta en lugar de un error.

Guardar la salida de ping en un archivo

La mayoría de los comandos, si no todos, solo devuelven los resultados en la pantalla y el ping El comando en Linux no es diferente. La terminal de Linux tiene operadores de redirección de salida integrados que le permiten redirigir la salida a un archivo.

Estos operadores de redirección son los siguientes:

(> ), que sobrescribirá el contenido del archivo, y el;

(>> ), que agregará la salida al contenido existente.

Pero, ¿por qué querrías guardar los resultados del ping en un archivo? Principalmente para el mantenimiento de registros y el análisis posterior mediante un editor de texto o un analizador de registros.

También puede usar un programa de hoja de cálculo para crear un gráfico que muestre cómo cambia el tiempo de ping con el tiempo.

Ejecute el siguiente comando para guardar el resultado del ping en un archivo. Este comando escribe toda la salida estándar del ping comando a un archivo llamado log.txt en disco.

ping -c 10 localhost > log.txt

Mientras que el ping se está ejecutando el comando, notará que no hay salida en la pantalla.

Ahora, abra el log.txt archivo en un editor de texto, como nano . O muestre el contenido del archivo ejecutando cat comando.

# Open in a text editor
nano log.txt
# OR
# Display the contents on the screen
cat log.txt

Conclusión

En este tutorial, ha aprendido a usar el comando ping de Linux con varios ejemplos prácticos. También aprendió cómo guardar el resultado del ping en un archivo en el disco para que pueda analizarlo más tarde.

En este punto, debe tener una buena comprensión de cómo funciona el comando ping y cómo puede ser útil. Pero antes de salir y comenzar a hacer ping a todo lo que esté a la vista, hay algunas reglas que debe habilitar en sus grupos de seguridad para permitir el tráfico ICMP.

¡Gracias por leer y feliz aprendizaje!


Linux
  1. Comando cp en Linux:7 ejemplos prácticos

  2. Comando de apagado de Linux:5 ejemplos prácticos

  3. 5 ejemplos prácticos del comando dd en Linux

  4. 10 ejemplos prácticos de comandos de Linux nm

  5. 7 ejemplos de comandos Linux df

15 ejemplos prácticos del comando Rsync en Linux

5 ejemplos prácticos de Tail Command en Linux

Comando echo en Linux:7 ejemplos prácticos

Ejemplos de comandos ping de Linux

Comando ping de Linux

Ejemplos de comandos id en Linux