¿Cómo mostrar el ping fallido?

21

Cuando estemos usando el ping de Windows, mostrará los pings fallidos. ¿Tiene Ubuntu una función similar?

El ping fallido es bastante útil cuando se depura la red. ¿Cómo ustedes resuelven esto? Bueno, solo quiero una solución simple, no quiero obtener un script largo.

    
pregunta 王子1986 06.04.2013 - 07:29

5 respuestas

0

Gracias por todas las respuestas. Parece que el último ping de Ubuntu puede mostrar que el ping falló.

Gracias de nuevo.

    
respondido por el 王子1986 18.04.2013 - 04:22
20

La respuesta correcta es: no existe tal cosa como " error ping perdido". (Las respuestas de error como "Destino inalcanzable" siempre se imprimen, es diferente de ninguna respuesta).

La utilidad de ping imprime todas las respuestas recibidas, incluso si come más tarde, decidió que este ping específico se perdió. Es totalmente posible recibir respuestas fuera de orden.

Incluso en mi teléfono con Android, la utilidad stock ping es compatible con estas 2 opciones:
-D imprime una marca de tiempo antes de cada mensaje
-O imprime un mensaje cuando la respuesta no se recibe a tiempo, y es más o menos lo que se pidió .
Sin embargo, estas opciones no parecen ser compatibles en todas partes (por ejemplo, Debian Wheezy carece de ellas, aunque Jessie las tiene. busybox ping no las admite).

Aquí hay un ejemplo de salida que logré (se saltan las respuestas de ping sin importancia):

u0_a93@NX505J:/ $ ping -D -O 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
[1440545014.805478] 64 bytes from 8.8.8.8: icmp_seq=1 ttl=244 time=116 ms
~~~~~~~~~~
[1440545142.995443] 64 bytes from 8.8.8.8: icmp_seq=129 ttl=244 time=110 ms
[1440545144.885601] no answer yet for icmp_seq=130
[1440545145.455485] 64 bytes from 8.8.8.8: icmp_seq=131 ttl=244 time=568 ms
[1440545145.455780] 64 bytes from 8.8.8.8: icmp_seq=130 ttl=244 time=1569 ms
[1440545146.005850] 64 bytes from 8.8.8.8: icmp_seq=132 ttl=244 time=119 ms
~~~~~~~~~~
[1440545254.055962] 64 bytes from 8.8.8.8: icmp_seq=240 ttl=244 time=115 ms
^C
--- 8.8.8.8 ping statistics ---
240 packets transmitted, 240 received, 0% packet loss, time 239250ms
rtt min/avg/max/mdev = 109.062/138.757/1569.620/101.608 ms, pipe 2

Observe cómo el número 130 se informa primero de que falta, luego se recibe después de # 131, y finalmente se informa que la pérdida de paquetes es cero.

Nota adicional sobre Windows:

En Windows, el ping parece esperar una respuesta más larga y luego lo declara faltante y lo ignora si llega más tarde.

De forma predeterminada, el intervalo es de 1 segundo y el tiempo de espera es de 4 segundos, por lo que:
En RTT bajo, los pings se enviarán con intervalos de 1 segundo.
En RTT > 4, los pings se enviarán con intervalos de 4 segundos (o 5, no estoy seguro) y todos se informarán como fallidos, igual que si el servidor no respondiera.

    
respondido por el EvgEnZh 26.08.2015 - 01:49
6

Eliminando parcialmente la respuesta de EvgEnZh, pero con mi propia versión:

ping -O -q 8.8.8.8

Eso hace que se imprima un mensaje cuando una respuesta demora demasiado o nunca regresa ( -O ) y suprime los mensajes cuando regresa ( -q ). El resultado es que solo obtienes resultados cuando faltan paquetes. Esto puede hacer que encontrar problemas intermitentes sea mucho más fácil al hacer que no tenga que examinar una pila de mensajes "funcionó" para los pocos lugares donde se rompió.

    
respondido por el Azendale 18.10.2016 - 15:20
2

Tal vez ping -f es adecuado para ti. Desde el manual de ping:

  

-f

     

ping de inundación. Por cada ECHO_REQUEST enviado se imprime un período ''. '',   mientras que para siempre ECHO_REPLY recibió un retroceso se imprime. Esta   proporciona una visualización rápida de cuántos paquetes se están cayendo. Si   no se proporciona el intervalo, establece el intervalo en cero y genera paquetes como   rápido como regresan o cien veces por segundo, lo que sea   Más. Solo el superusuario puede usar esta opción con intervalo cero.

Para 1 echo_request cada segundo se vería como ping -i 1 -f 8.8.8.8

    
respondido por el Daniel Yuste Aroca 06.04.2013 - 09:46
0

Incluso con la opción -v, ping no hace eso. Consulte esta pregunta . Pero si esto es realmente importante (o divertido) para usted, puede descargar la fuente, modificar el código para incluir una llamada a printf adecuada. Un buen lugar para hacerlo sería al final del método 'send_probe' (línea 619 en 12.10) ...

Primero obtienes la fuente

apt-get source iputils
cd iputils*

Hacer ediciones

gedit ping.c

Construye e instala el paquete generado ...

apt-get install libsysfs-dev
dpkg-buildpackage
    
respondido por el Rémi 17.04.2013 - 13:51

Lea otras preguntas en las etiquetas