Gracias a Linux, tenemos acceso a muchas herramientas que facilitan la administración de redes& diagnostics. En este sentido, el comando ping de Linux es una de las herramientas más útiles para administradores de sistemas y administradores de red.

Su función básica es determinar si un host de la red es accesible o no. Sin embargo, en este post, abordaremos otras capacidades más avanzadas del comando Ping de Linux.

Tabla de Contenidos

¿Qué es la utilización del comando ping?,

el comando ping es una de las herramientas más básicas para trabajar con redes. Su propósito es diagnosticar errores de conexión de red.

de esta manera, es posible saber si un nodo de red ha perdido conectividad. Por otro lado, también es útil realizar otras tareas de diagnóstico como las siguientes:

  • medir el tiempo que tardan dos nodos de red en comunicarse.
  • también podremos identificar la dirección IP de un host específico. Podemos usar esta función tanto en Internet como en una red privada.,
  • El comando ping se puede utilizar en un script bash para realizar comprobaciones automáticas con nodos de red.
  • Permite saber si hay una conexión con un equipo específico.

como puede ver, es un comando necesario para la administración de redes y servidores.

¿cómo funciona el comando ping?

en Linux, el funcionamiento del comando ping es bastante simple de explicar. El comando envía una serie de paquetes pequeños a un nodo específico.

puede probar este nodo usando la dirección IP o el nombre de host., Luego, después de enviar el paquete, el comando verifica y mide el tiempo que toma recibir una respuesta del nodo de destino.

como es de esperar, el tiempo de respuesta puede verse afectado debido a condiciones como la ubicación geográfica entre los puntos de conexión o cualquier pieza del hardware utilizado entre los dos nodos.

por ejemplo, en redes privadas cableadas, el comando obtendrá mejores tiempos que con una red con varios enrutadores o puentes.

sin embargo, la información que el comando generará juzgará si la red está en buenas o malas condiciones.,

la sintaxis del comando es la siguiente:

ping 

algunas de las opciones más útiles y utilizadas del comando ping son las siguientes:

  • -C: con esta opción, puede especificar cuántos paquetes enviar.
  • -s: Esta opción le permite cambiar el tamaño predeterminado de los paquetes.
  • – v: modo detallado.
  • – w: especifica un tiempo en segundos que la ejecución del comando terminará. No importa cuántos paquetes haya enviado o recibido el comando.
  • -i: con esta opción, puede especificar la interfaz de red a utilizar.,

el nodo de destino se puede especificar mediante una dirección IP o un nombre de host.

¿puedo hacer ping con un proxy?

un proxy es un servidor o aplicación que actúa como intermediario para la conexión entre dos puntos de una red. Es el hombre en el medio quien hace la solicitud directamente a otro nodo.

El problema es que el comando Ping requiere una conexión de red directa entre los nodos.

por lo tanto, el comando Ping generalmente no puede funcionar correctamente si hay un proxy detrás de él.

una posible solución es que muchos sitios web ofrecen el servicio de comando Ping., Por otro lado, para algunas tareas del comando ping, es posible utilizar el comando curl. Además, puede usar una VPN para que oculte su IP.

sin embargo, en algunas distribuciones de Linux, este comando no se instala por defecto. Primero, verifique y luego instálelo si no está instalado.

protocolo Ping IPv6

normalmente, cuando se utiliza el comando Ping, utilizamos direcciones IP con el protocolo IPv4. Sin embargo, con la llegada del protocolo IPv6, es cada vez más común notar direcciones en este formato.

El núcleo Linux soporta el protocolo IPv6 desde la versión 2.,2, por lo que todas las distribuciones de Linux actualmente lo soportan.

La sintaxis básica es la siguiente:

$ ping -6 2001:4860:4860::8888

En versiones antiguas, no fue ping6 comando. En versiones recientes de Linux, ping6 ya no existe, y su funcionalidad se ha fusionado en ping, y funciona de la misma manera que vio.

la sintaxis básica es la siguiente:

ping6 

con la opción-c, podemos especificar el número de paquetes a enviar y con-i para la interfaz de red que utilizará., Por ejemplo:

ping6 2001:4860:4860::8888

Ping a un puerto específico

a Veces queremos saber si un puerto específico en un nodo está activo. Sin embargo, el comando ping no proporciona esta funcionalidad, pero es posible hacerlo con el comando telnet que está instalado por defecto en Linux.

Para ello, sólo tiene que utilizar la siguiente sintaxis:

telnet 
telnet google.com 80

De esta manera, es posible hacer ping a un puerto específico de un nodo de la red en una forma primitiva.,

Ping con tiempo

aunque el comando ping muestra información útil, puede ser un poco simple. Sin embargo, es posible modificar un poco el funcionamiento del comando, para que muestre la fecha de envío del paquete.

esto puede hacer que la información sea agradable a la vista y podría ser útil para scripts y registros.

Esta sintaxis es suficiente para hacerlo. Sin embargo, necesita instalar el paquete ccze.

ping | xargs -n1 -i bash -c 'echo `date +%F\ %T`" {}"' | ccze

como puede ver, muestra la hora de cada paquete enviado.,

Ping a todos los hosts de una subred determinada

puede enviar una señal de ping a todos los hosts de una red o subred. Para esto, es suficiente agregar la opción-b y hacer ping a la dirección IP de difusión de cualquier red que termine con 255.

Por ejemplo:

ping -b -c 4 192.168.1.255

Así que, si el destino es inalcanzable, tal vez bloquean los paquetes ICMP enviados por el comando ping, o tal vez hay un problema de red o un problema en la tabla de enrutamiento.

¿cómo terminar un ping?,

por defecto, el comando ping en Linux envía continuamente paquetes de prueba a los hosts. Sin embargo, una vez que la información está disponible, se hace necesario terminar la ejecución del comando ping.

para hacerlo, simplemente presione las siguientes teclas:

CTRL + C

de esta manera, el comando dejará de funcionar inmediatamente.

fin después de un conteo específico

puede limitar el conteo de paquetes a 10 o lo que sea. Cuando termine de enviar los diez paquetes, se detendrá.,

ping -c 10 

¿dónde se encuentra el comando ping en Linux?

en un sistema derivado de Unix como Linux, los binarios se encuentran comúnmente en la ruta:

/usr/bin/

en este directorio, encontrará muchos binarios que usamos como comandos en el terminal. En otros sistemas operativos de la familia Linux, también es posible colocarlo en el directorio

/usr/sbin/

.,

Así, podemos comprobar mediante el comando ls:

$ ls /usr/bin | grep ping

En esta imagen, se puede ver que el ping se encuentran en

/usr/bin/

Otra forma, puede utilizar el comando which para localizar cualquier comando en Linux:

$ which ping

se mostrará la siguiente:

/usr/bin/ping

Verificación de latencia usando el comando ping

Una de las posibilidades que ofrece el comando ping es que se puede medir la conexión tiempo de respuesta. Esa es la latencia.,

para medir la latencia usando el comando ping, simplemente utilícelo y preste atención a la salida de pantalla:

ping -c 4 ping -c 4 192.168.1.1

como puede ver, se han enviado cuatro paquetes al destino con un cierto tiempo de respuesta.

En la parte inferior, hay una línea que comienza de la siguiente manera:

rtt min/avg/max/mdev

El segundo valor después del signo igual es el valor de latencia. En este caso, el valor es 6.798.,

con la latencia, es posible determinar los hosts que tienen conectividad inferior al resto. De esta manera, podremos tomar las medidas pertinentes.

encuentra el MTU ideal

el MTU (Unidad de transmisión máxima) es un valor que expresa estáticamente el tamaño en bytes de la unidad de datos más grande que se puede enviar a través de una red.

actualmente, debido a las medidas de seguridad, cada vez más redes están impidiendo que MTU funcione. Sin embargo, la mayoría de las redes de área local Ethernet utilizan una MTU de 1500 bytes.,

si desea encontrar el valor MTU ideal utilizando el comando ping, establezca los valores iniciales y disminuya hasta que no haya error. Si el valor es demasiado alto, obtendremos el siguiente error:

ping: local error: Message too long

Para ello, utilice la siguiente sintaxis:

ping -M do -s 

Por ejemplo:

ping -M do -s 1473 192.168.1.1

En este caso, el valor del tamaño del paquete es muy grande. Así que lo disminuiré. En este caso, el valor óptimo es 1472.,

Si recibe otro mensaje, el valor inicial debe reducirse uno por uno hasta obtener el resultado deseado.

si se conoce el valor MTU, se puede usar para mejorar el comportamiento de la red, especialmente si se trata de una red grande o incluso metropolitana.

Ping en la capa 2 (usando arping)

con el comando ping, podremos realizar pruebas conociendo la dirección IP de un nodo específico dentro de la red. Esto se debe a que el comando ping funciona en la capa 3 del modelo OSI (red).,

por otro lado, es posible usar otro comando que está integrado en Linux como arping. Este comando funciona muy similar a ping pero funciona en la capa 2 del modelo OSI.

La sintaxis del comando es la siguiente:

$ sudo arping 
$ sudo arping 192.168.1.1

obtendrá un resultado como este:

La pantalla de salida del comando muestra primero el tamaño del paquete enviado y, a continuación, la dirección MAC del nodo y el tiempo de respuesta.

tenga en cuenta que este comando no está instalado de forma predeterminada en Debian Linux y sus derivados., Así que tienes que instalarlo, luego puedes ejecutarlo como root.

Ping a hostname

de forma predeterminada, el comando ping envía paquetes de prueba al destino utilizando la dirección IP o el nombre de host del Destino. También debe tenerse en cuenta que la mayoría de las implementaciones de ping en Linux no resuelven DNS al revés.

por ejemplo, si usa el comando Ping agregando una dirección IP, solo devolverá la dirección IP del host en la salida. Por el contrario, si hemos especificado un nombre de host, lo resolverá y mostrará la IP en la salida.,

Compruebe la salida del siguiente comando:

$ ping google.com

Ping route (usando traceroute)

el comando ping no muestra la ruta desde el origen para llegar al destino.

y esto puede ser bastante útil en caso de que la conexión con el host se haya perdido porque podemos entender en qué punto se ha perdido la conexión.

el comando tracert o traceroute funciona de una manera muy similar al comando ping. La ventaja de esto es que muestra la ruta que toma el paquete, mostrando así su ruta.,

Al igual que el comando ping viene instalado en la mayoría de las distribuciones de Linux. La sintaxis básica es la siguiente:

traceroute 

de esta manera, podemos ver la ruta que están tomando los paquetes.

Ejecutar comando si el ping falla

supongamos que desea recibir una alerta cuando el comando ping falla. Para hacer esto, necesita incorporar el comando ping en un script bash para establecer la condición deseada.,

por ejemplo, este script de shell le permite comprobar si el comando ping falla:

#! /bin/bashping -c 1 If ; then #Your_command_hereFi

establecer el tamaño del paquete ping

El tamaño predeterminado de los paquetes enviados por el comando ping a los hosts es de 56 bytes. Es un valor lo suficientemente bajo como para no afectar el funcionamiento de la red.

sin embargo, es posible cambiarlo a otro valor. Para hacer esto, simplemente agregue la opción-s con el tamaño de paquete deseado.,

por ejemplo:

ping -s hostname/IP

Si desea que el tamaño del paquete sea de 100 bytes, simplemente use el siguiente comando:

ping -s 100 192.168.1.1

recuerde que puede variar ligeramente por MTU.

desactivar el comando ping

si somos responsables de mantener una red, es posible que deseemos desactivar las respuestas de ping en cualquier momento. Podemos hacerlo temporal o permanentemente, según nuestras necesidades.,

si queremos desactivarlo temporalmente, es suficiente usar este comando como usuario root:

$ su$ echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

Esto deshabilitará la respuesta del comando ping, pero solo hasta que reinicie el sistema.

Si quieres hacerlo de forma permanente, tiene que editar el siguiente archivo

/etc/sysctl.conf

y agregar la siguiente línea:

$ nano /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_all=1

a Continuación, guarde el archivo y salga del editor., Para aplicar los cambios, use este comando:

$ sysctl -p

Esto deshabilitará el comando ping o la respuesta de los paquetes ICMP.

conclusión

en este post, hemos explicado en detalle cómo funciona el comando ping en Linux. Desde su utilidad hasta su desactivación. Ping es uno de los comandos más fáciles de usar.

Esto hace que la persona responsable de la operación de la red sepa dónde está el problema para que pueda tomar medidas.

espero que el post útil. Sigue regresando.

Gracias.,

Fundador de LikeGeeks. Estoy trabajando como administrador de sistemas Linux desde 2010. Soy responsable del mantenimiento, la seguridad y la solución de problemas de los servidores Linux para múltiples clientes en todo el mundo. Me encanta escribir scripts de shell y Python para automatizar mi trabajo.