Comando ping: opciones de ping en Linux y cómo comprobar el 100% packet loss
En un servidor Linux, el comando ping comprueba si los paquetes llegan a otro servidor y cuánto tarda el viaje de ida y vuelta. Al enviar paquetes a example.com desde servidores AlmaLinux 9 y Debian 12 con un número fijado con -c, el tiempo de ida y vuelta fue de 1 a 3 ms, y un servidor que bloquea ICMP dio 100% packet loss en ping aunque respondía a las peticiones web.
La salida de abajo procede de un servidor AlmaLinux 9.8 (cuenta root) y de un servidor Debian 12 (cuenta normal). Todos los ping se ejecutaron fijando con -c el número de envíos. Las IP privadas de los routers intermedios se cambiaron por valores de ejemplo, y las direcciones resueltas a partir de dominios públicos como example.com se dejaron tal cual.
1️⃣ Cómo usar el comando ping
ping envía una solicitud de eco ICMP al otro servidor e imprime, línea a línea, el tiempo que tarda en volver la respuesta de eco. En Linux, ping sigue enviando hasta que lo detienes con Ctrl+C si no fijas un número con -c (según el manual oficial), así que conviene ejecutarlo desde el principio con un número, como -c 4.
ping -c 4 example.comPING example.com (172.66.147.243) 56(84) bytes of data.
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=1 ttl=58 time=1.46 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=2 ttl=58 time=1.30 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=3 ttl=58 time=1.28 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=4 ttl=58 time=1.30 ms
--- example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 1.279/1.336/1.464/0.074 msAl enviar cuatro paquetes a example.com desde el servidor Debian 12 llegaron las cuatro respuestas, con un tiempo de ida y vuelta de 1,28 a 1,46 ms. Esto es lo que muestra cada línea.
| Salida | Qué muestra |
|---|---|
| PING example.com (172.66.147.243) 56(84) bytes of data. | La dirección obtenida al resolver el nombre y el tamaño enviado — 56 bytes de datos más 20 bytes de cabecera IP y 8 bytes de cabecera ICMP suman 84 bytes |
| 64 bytes from … | Tamaño de la respuesta recibida (56 bytes de datos + 8 bytes de cabecera ICMP) |
| icmp_seq=1 | Número de secuencia del envío |
| ttl=58 | TTL que queda en el paquete de respuesta — baja en 1 en cada router que atraviesa |
| time=1.46 ms | Tiempo de ida y vuelta de ese paquete |
| 4 packets transmitted, 4 received, 0% packet loss | Paquetes enviados, paquetes recibidos y porcentaje sin respuesta |
| time 3003ms | Tiempo desde el primer envío hasta que termina |
| rtt min/avg/max/mdev | Tiempo de ida y vuelta mínimo, medio y máximo, y su dispersión (mdev) |
mdev indica cuánto se alejan los tiempos de ida y vuelta de la media, y el manual oficial explica que cuanto mayor es, menos uniformes son esos tiempos. En este resultado, con las cuatro respuestas por debajo de 1,5 ms, mdev fue 0,074 ms.
Al ejecutar el mismo comando en el servidor AlmaLinux 9, ping envió a la dirección IPv6 de example.com, y la primera línea mostró solo 56 data bytes, sin el 84.
ping -c 4 example.comPING example.com(2606:4700:10::ac42:93f3 (2606:4700:10::ac42:93f3)) 56 data bytes
64 bytes from 2606:4700:10::ac42:93f3 (2606:4700:10::ac42:93f3): icmp_seq=1 ttl=51 time=2.20 ms
64 bytes from 2606:4700:10::ac42:93f3 (2606:4700:10::ac42:93f3): icmp_seq=2 ttl=54 time=2.30 ms
64 bytes from 2606:4700:10::ac42:93f3 (2606:4700:10::ac42:93f3): icmp_seq=3 ttl=51 time=2.55 ms
64 bytes from 2606:4700:10::ac42:93f3 (2606:4700:10::ac42:93f3): icmp_seq=4 ttl=54 time=2.26 ms
--- example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 2.203/2.326/2.547/0.131 msComprueba la versión de ping instalada con -V. El servidor Debian 12 tenía iputils 20221126 y el servidor AlmaLinux 9, iputils 20210202.
ping -Vping from iputils 20221126
libcap: yes, IDN: yes, NLS: no, error.h: yes, getrandom(): yes, __fpending(): yesping -Vping from iputils 202102022️⃣ Opciones de número de envíos e intervalo de ping
Entre las opciones de ping, -c es el número de envíos y -i el intervalo entre ellos (segundos). El intervalo por defecto es de 1 segundo, y con -i 0.5 el tiempo para enviar cuatro paquetes bajó de 3003 ms a 1502 ms.
ping -c 4 -i 0.5 example.comPING example.com (172.66.147.243) 56(84) bytes of data.
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=1 ttl=58 time=1.26 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=2 ttl=58 time=1.31 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=3 ttl=58 time=1.37 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=4 ttl=58 time=1.44 ms
--- example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 1502ms
rtt min/avg/max/mdev = 1.264/1.343/1.436/0.065 msSegún el manual de iputils 20210202 del servidor AlmaLinux 9, solo root puede usar un intervalo menor de 0,2 segundos, mientras que el manual de iputils 20221126 del servidor Debian 12 fija ese límite en 2 ms. Los intervalos cortos pueden cargar el otro servidor y la red.
-w es el tiempo (segundos) tras el que ping termina del todo, sin importar cuántos envíos haya hecho. Junto con -c, termina al recibir el número fijado de respuestas o al agotarse el tiempo de -w. Con -c 10 -w 3 envió solo tres paquetes y terminó a los 3 segundos.
ping -c 10 -w 3 example.comPING example.com (172.66.147.243) 56(84) bytes of data.
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=1 ttl=58 time=1.34 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=2 ttl=58 time=1.27 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=3 ttl=58 time=1.34 ms
--- example.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 1.272/1.318/1.342/0.032 msLlegaron las tres respuestas, pero como no se completaron los 10 envíos fijados, el código de salida de ping fue 1. El manual oficial también explica que, al usar -c y -w juntos, ping termina con 1 si no recibe el número de respuestas fijado.
-W es el tiempo (segundos) que se espera una sola respuesta. Según el manual oficial, este valor solo se aplica cuando no llega ninguna respuesta; con un destino que sí responde, espera el doble del tiempo de ida y vuelta.
Para ver solo el resumen sin las líneas de resultado, añade -q. Al enviar cuatro paquetes quedaron solo la primera línea y las estadísticas finales.
ping -c 4 -q example.comPING example.com (104.20.23.154) 56(84) bytes of data.
--- example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 1.551/1.649/1.715/0.060 ms3️⃣ Opciones de tamaño de paquete e IPv6 de ping
El tamaño de los datos enviados se cambia con -s. Con -s 1000, la primera línea pasó a 1000(1028) bytes y las líneas de respuesta a 1008 bytes.
ping -c 2 -s 1000 example.comPING example.com (172.66.147.243) 1000(1028) bytes of data.
1008 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=1 ttl=58 time=1.21 ms
1008 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=2 ttl=58 time=1.31 ms
--- example.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 1.214/1.262/1.311/0.048 ms1028 son 1000 bytes de datos más 20 bytes de cabecera IP y 8 bytes de cabecera ICMP, y 1008 son los datos más solo la cabecera ICMP. El tiempo de ida y vuelta fue de 1,21 a 1,31 ms, sin gran diferencia respecto al tamaño por defecto (56 bytes).
-t fija el TTL de los paquetes enviados. El TTL baja en 1 en cada router, y al llegar a 0 ese router descarta el paquete y devuelve [Time to live exceeded].
ping -c 2 -t 3 example.comPING example.com (172.66.147.243) 56(84) bytes of data.
From 192.0.2.103 (192.0.2.103) icmp_seq=1 Time to live exceeded
From 192.0.2.103 (192.0.2.103) icmp_seq=2 Time to live exceeded
--- example.com ping statistics ---
2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 1001msCon el TTL bajado a 3, el tercer router devolvió [Time to live exceeded] las dos veces. Subiendo el TTL de uno en uno desde 1, example.com respondió por primera vez con 8.
-4 y -6 limitan el tipo de dirección de destino a IPv4 o a IPv6. El servidor AlmaLinux 9 enviaba a la dirección IPv6 de example.com incluso sin opciones, así que para enviar a la dirección IPv4 se añadió -4.
ping -4 -c 4 example.comPING (172.66.147.243) 56(84) bytes of data.
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=1 ttl=54 time=2.64 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=2 ttl=54 time=2.55 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=3 ttl=54 time=2.57 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=4 ttl=54 time=2.58 ms
--- ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 2.553/2.585/2.642/0.033 msCon iputils 20210202 en el servidor AlmaLinux 9, al añadir -4 el campo del nombre salió vacío en la primera línea y en la de estadísticas. Con el mismo comando en iputils 20221126 del servidor Debian 12, example.com apareció con normalidad.
En el servidor Debian 12, que no tiene ruta IPv6 por defecto, añadir -6 terminó enseguida con [connect: Network is unreachable] y sin líneas de respuesta.
ping -6 -c 2 example.comping: connect: Network is unreachable🔲 Opciones del comando ping
📌 Opciones principales: resultados de este artículo
| Opción | Tarea | Resultado en este artículo | |
|---|---|---|---|
| -c número | Fija cuántos paquetes enviar y termina tras enviarlos | -c 4 en el servidor Debian 12: cuatro envíos y cuatro respuestas, ida y vuelta 1,28–1,46 ms | |
| -i intervalo | Intervalo entre envíos (segundos), 1 segundo por defecto | Con -i 0.5, el tiempo para enviar cuatro paquetes bajó de 3003 ms a 1502 ms | |
| -w tiempo | Tiempo (segundos) tras el que ping termina del todo, sin importar cuántos envíos haya hecho | -c 10 -w 3 envió solo tres paquetes a los 3 segundos y terminó con código de salida 1 | |
| -W tiempo | Tiempo (segundos) de espera de una sola respuesta cuando no llega ninguna | Dos envíos a 192.0.2.1 con -W 1: [100% packet loss], código de salida 1 | |
| -q | Muestra solo la primera línea y las estadísticas finales, sin líneas de respuesta | Tras cuatro envíos quedan solo la primera línea y la de estadísticas | |
| -s tamaño | Tamaño de los datos enviados (bytes), 56 por defecto | Con -s 1000, la primera línea muestra 1000(1028) bytes y las de respuesta 1008 bytes | |
| -t TTL | TTL de los paquetes enviados | Con -t 3, el tercer router devolvió [Time to live exceeded] las dos veces | |
| -4 | Envía solo a direcciones IPv4 | En el servidor AlmaLinux 9 envió a la dirección IPv4 en lugar de IPv6; el campo del nombre sale vacío | |
| -6 | Envía solo a direcciones IPv6 | En el servidor Debian 12 sin ruta IPv6 por defecto: [connect: Network is unreachable] | |
| -D | Añade delante de cada línea de respuesta el tiempo Unix (segundos.microsegundos) | Delante de cada línea de respuesta aparece una marca de tiempo como [1793227536.574201] | |
| -V | Muestra la información de versión | Debian 12 tiene iputils 20221126 y AlmaLinux 9, iputils 20210202 |
📎 Otras opciones: según el manual oficial
| Opción | Tarea | |
|---|---|---|
| -n | Muestra las direcciones solo como números, sin resolverlas a nombres | |
| -I interfaz | Indica la interfaz o la dirección de origen desde la que enviar | |
| -A | Ajusta por sí mismo el intervalo de envío al tiempo de ida y vuelta; sin root, intervalo mínimo de 200 ms | |
| -f | Ping de inundación que envía rápido sin esperar respuestas; el intervalo 0 es solo para root | |
| -l número | Paquetes que se envían por adelantado sin esperar respuesta; más de 3 solo con root | |
| -M do | Fija el modo de Path MTU Discovery; do impide la fragmentación (también acepta want y dont) | |
| -p patrón | Patrón de bytes con el que se rellenan los paquetes enviados, hasta 16 bytes | |
| -O | Avisa de las solicitudes sin respuesta antes de enviar el siguiente paquete; se usa con -D para registrar | |
| -R | Registra la ruta recorrida (solo IPv4; muchos hosts ignoran esta opción) | |
| -b | Permite enviar a una dirección de difusión (broadcast) | |
| -a | Emite un sonido cada vez que llega una respuesta |
🔲 Simulador del comando ping
En el simulador de abajo puedes escribir comandos tú mismo para ver los resultados con distintos números de envíos e intervalos, tamaños de paquete y envíos a una dirección que no responde.
4️⃣ ping sin respuesta
[100% packet loss] significa que no llegó ninguna respuesta a los paquetes enviados. Al enviar dos veces con -W 1 a 192.0.2.1, una dirección reservada para documentación, solo aparecieron las estadísticas, sin líneas de respuesta.
ping -c 2 -W 1 192.0.2.1PING 192.0.2.1 (192.0.2.1) 56(84) bytes of data.
--- 192.0.2.1 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1024msCuando no llegó ninguna respuesta, el código de salida de ping fue 1, y cuando llegaron respuestas fue 0. Los scripts usan este valor para comprobar si otro servidor responde.
ping -c 2 -W 1 192.0.2.1 > /dev/null; echo $?; ping -c 1 example.com > /dev/null; echo $?1
0ping solo comprueba ICMP, así que un servidor que bloquea ICMP puede responder a las peticiones web y no a ping. Al enviar dos veces a amazon.com desde el servidor Debian 12 salió [100% packet loss], y una petición web con curl a la misma dirección recibió una respuesta 301.
ping -c 2 -W 1 amazon.comPING amazon.com (98.82.161.185) 56(84) bytes of data.
--- amazon.com ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1002mscurl -sI https://amazon.com/ | head -1HTTP/1.1 301 Moved PermanentlyUn servidor que bloquea ICMP es como una tienda que ha quitado el timbre.
En algunos servidores en la nube hay que permitir ICMP en las reglas del cortafuegos para que respondan a ping. Una instancia de VM de Oracle Cloud respondió a ping después de cambiar a 8 el tipo ICMP en la lista de seguridad de la subred pública.
Si no puede resolver el nombre a una dirección IP, termina enseguida con [Name or service not known] y sin primera línea, con código de salida 2. .invalid es un nombre reservado para que no se resuelva en ningún sitio, por eso se usó para comprobar este error.
ping -c 1 no-such-host.invalidping: no-such-host.invalid: Name or service not knownSi este error aparece con un dominio real, consulta la guía: Comando nslookup — comprueba si el servidor DNS devuelve una dirección para ese nombre. Abajo están las cuatro salidas que aparecieron cuando no hubo respuesta y lo que conviene revisar después.
| Salida | Significado | Qué revisar después |
|---|---|---|
| 100% packet loss | No llegó ninguna respuesta a los paquetes enviados | El servicio web con curl; el cortafuegos, con una regla que permita ICMP |
| Name or service not known | No pudo resolver el nombre a una dirección IP | Respuesta DNS con nslookup |
| connect: Network is unreachable | No hay ruta de salida para ese tipo de dirección | Enviar a la dirección IPv4 con -4 |
| Time to live exceeded | El TTL llegó a 0 en un router intermedio | Subir el valor de -t o quitarlo y volver a enviar |
🔢 FAQ & contenido recomendado
Red · Configuración
[Linux] Comando ip: gestión de interfaces de red y configuración
El comando ip, para comprobar y gestionar las interfaces de red, las direcciones IP y el enrutamiento de un servidor.
Red · DNS
Comando host de Linux | comando de consulta DNS
El comando host, para buscar la dirección IP de un nombre de host o convertir una dirección IP en nombre de host.
Acceso · transferencia
Comando SSH: opciones y cómo usarlo
Opciones y uso del comando SSH, que se conecta a un servidor remoto por una conexión cifrada para ejecutar comandos.
ℹ️ Aviso de afiliados
El contenido de este sitio incluye enlaces de afiliado. Cuando un visitante compra un producto o servicio a través de uno de ellos, el sitio recibe una comisión del vendedor. El importe que paga el comprador(baja durante las promociones ↓)no aumenta. Los precios, descuentos y existencias publicados corresponden al momento de redacción y pueden variar, así que confírmalos con el vendedor antes de comprar. Los productos se eligen y evalúan con criterios propios, y las comisiones no influyen en el orden ni en el contenido de las reseñas.