Cómo monitorear la conexión a Internet para detectar interrupciones - para Mac OS X

16

Me he suscrito a un nuevo ISP y estoy experimentando problemas con este nuevo ISP. Los problemas son varias micro interrupciones en la conexión a Internet, una especie de retraso, que probablemente esté relacionado con los tiempos de espera en sus servidores proxy o en mi conexión a su red.

Como estas micro interrupciones ocurren al azar, no puedo probar eso, porque cada vez que envían a un técnico a mi oficina el problema no es detectable, especialmente porque el servicio puede ser estable durante 3, 4 horas y luego comenzar a mostrar el problema nuevamente.

Es muy molesto por dos razones. Estoy descargando algo y luego la descarga se detiene de repente y tengo que comenzar de nuevo. Otra razón es que uso una caja de VoIP conectada a mi teléfono usando Ethernet y esta caja de VoIP pierde la conexión cada vez, y mi teléfono de VoIP deja de recibir / hacer llamadas, lo que me obliga a reiniciar la caja cada vez que la detecto y me quedo horas con el teléfono caído, sin darse cuenta.

Mi pregunta es: ¿Cómo puedo monitorear el servicio de Internet por un período, diciéndome cuando el servicio está inactivo, trazar un gráfico o algo así? ¿Alguna herramienta o alguna forma de monitorear la calidad de la red o conexión que puede ejecutarse en una Mac?

Mi idea es tener algo que mostrarles y demostrar que tengo razón.

Perro espacial
fuente
Esta Q realmente puede estar en el tema, se ajusta a la plantilla de "buena pregunta" (de ¿Cómo hago una pregunta que puede requerir recomendar un software? ) "Tengo <problema-x - interrupciones de red > que no sé cómo resolver. Ya he intentado X, Y, Z (reiniciar VoIP cuando lo detecto) , pero esos programas no funcionan porque esto o aquello. ¿Cómo hago esto? " Es básicamente el único problema solicitando una "herramienta para el seguimiento de la conexión a Internet" en lugar de decir "Cómo supervisar conexión a Internet para las interrupciones?
Xen2050

Respuestas:

5
Applications->Utilities->Console.app

Eche un vistazo a los registros allí como punto de partida.

También puedes mirar en ntop o Little Snitch .

CaseyIT
fuente
1
ntop.org <enlace correcto a ntop (creo)
Frank Lämmer
Busque en0o en1una vez que abra console.app (los nombres de su interfaz de red) para ver la información de la red.
Justin
7

Si usa lo siguiente:

ping -A -i 10 --apple-time 10.20.30.40 > monitor.txt

Se ejecutará continuamente hasta que se detenga y haga ping cada 10 segundos para 10.20.30.40(cambiar su dirección)

Esto --apple-timesignifica que registrará el tiempo de cada ping para que pueda ver las fallas. Al igual que:

11:33:10.793801 64 bytes from 10.20.30.40: icmp_seq=0 ttl=58 time=27.744 ms
11:33:11.780250 64 bytes from 10.20.30.40: icmp_seq=1 ttl=58 time=9.757 ms
11:33:12.781136 64 bytes from 10.20.30.40: icmp_seq=2 ttl=58 time=10.150 ms
11:33:13.782932 64 bytes from 10.20.30.40: icmp_seq=3 ttl=58 time=11.779 ms
11:33:14.785446 64 bytes from 10.20.30.40: icmp_seq=4 ttl=58 time=11.254 ms
Tony Lambert
fuente
2

¿Qué tal pingcorrer en la Terminal? Simplemente encuentre un servidor que esté encendido y responda a pings. Si bien no muestra los tiempos exactos, le brinda algún tipo de prueba de que algo está mal.

Editado para agregar: lo he usado hace un tiempo para un similar. Si bien mantuvieron que mi punto de acceso inalámbrico (antiguo, para ser sincero) podría tener la culpa, ya que no encontraron nada, "Tengo tiempos de espera de ping al menos una vez cada hora" ayudó a que el ingeniero revisara las cosas.

Daniel Beck
fuente
2

Silbido

Para monitorear la conexión a internet, simplemente puede usar el pingcomando. Simplemente envía ICMP ECHO_REQUEST y espera la respuesta.

Haga ping a la dirección IP de su enrutador, cuando no responde, puede informar a su ISP como interrupción de Internet.

Si su enrutador tiene firewall, use arpingen su lugar, o simplemente elija otro host remoto, por ejemplo

$ ping 4.2.2.1
PING 4.2.2.1 (4.2.2.1): 56 data bytes
64 bytes from 4.2.2.1: icmp_seq=0 ttl=57 time=37.710 ms
64 bytes from 4.2.2.1: icmp_seq=1 ttl=57 time=32.051 ms

Arping

Para monitorear su conexión física al enrutador, puede usar arping, por ejemplo

$ sudo arping 192.168.0.1

Esto es especialmente útil cuando su WiFi sigue cayendo y su enrutador no responde a los paquetes ICMP estándar. Instalar a través de Brew ( brew install arping).

Tcpdump

Hay tcpdumpque puede volcar el tráfico en una red. Por ejemplo, para volcar todos los paquetes salientes en el puerto 80y 443, la sintaxis podría ser:

sudo tcpdump -i en0 port http or port https

Para escribir en el archivo, agregue -w file, luego léalo a través de -r file. Esto incluirá marcas de tiempo exactas de cada paquete de red que se recibe o envía.

Para verificar si Internet está interrumpido, busque los paquetes SYN (en la sección Banderas) que envía su computadora, y para cada uno el servidor debe responder con un SYN-ACK. Si eso no sucede y no hay ningún tráfico que regrese (solo paquetes SYN, entonces no hay conexión a Internet).

kenorb
fuente
¿Hay una manera fácil (como un script) que busca automáticamente en la salida de tcpdump buscando paquetes SYN que no tienen una respuesta SYN-ACK correspondiente?
Xen2050
@ Xen2050 Creo que buscaría el volcado o la salida buscando un Sindicador como:, a sudo tcpdump -i en0 -nl | grep -C5 "Flags .S"partir de ahí, si tiene un contexto (extra | grep ack), significa que algo respondió. Entonces necesitas algo opuesto. Creo que encuentra alguna awk/ sedsintaxis que puede encontrar 5 paquetes SYN seguidos, luego puede alertar que algo anda mal (a menos que se contacte con algún host muerto).
kenorb
Para la monitorización en vivo, ping -A www.yahoo.com emitirá un pitido cuando se corta la conexión. Si bien puede usar una dirección IP, el uso de una dirección legible por humanos también probará las fallas de DNS.
brianfit
1

Esta aplicación registra el estado de su conexión e incluso afirma que Apple la usa internamente.

Registre las interrupciones de la red, las velocidades de los gráficos a lo largo del tiempo y más. Network Logger Pro también se puede usar para monitorear sitios web y producir gráficos históricos de sus velocidades, interrupciones y tiempos de respuesta.

https://itunes.apple.com/us/app/network-logger-pro/id764324406?mt=12

Sin embargo, cuesta $ 10: /

Justin
fuente
1

Ese era uno de los síntomas que tenía , además del bajo rendimiento. Resultó ser el cable módem. La buena noticia es que es posible que no tenga que convencer a nadie para obtener un nuevo módem de cable. Mi ISP resultó tener la política de que podría cambiar su módem de cable por uno nuevo a voluntad. Verifique y vea si el suyo lo hará.

Jamie Cox
fuente
Interesante, pero llegaste al punto. Sí, desafortunadamente mi conexión es por cable módem, pero es completamente nueva (la instalaron hace un mes). Sospecho que el problema es su red de cable. Nunca me gustó Internet por cable (me vi obligado a usarlos, porque no hay otra compañía de banda ancha que ofrezca servicios en mi región).
SpaceDog
1

Para mi propio uso, he escrito un simple script de Bash para verificar esto. Se utiliza pingcomo una forma de monitorear los tiempos de espera, exactamente como la mayoría de las respuestas sugieren que haga. La ventaja del script es que la salida en su pantalla solo muestra los pings que expiraron, en lugar de incluir también pings exitosos. Además, puede pasar un parámetro durante la duración de la supervisión, en lugar del número de intentos de ping. En resumen, es solo un contenedor para lo siguiente: ping google.com -i 1 -c 60 | grep "timeout\|statistics\|transmitted\|avg" su fuente y sus sencillas instrucciones de instalación están disponibles en el siguiente enlace:

https://github.com/superman-lopez/monitor-timeouts

Probé el script en macOS y Ubuntu Linux.

#!/bin/bash
#Usage: ./monitor-timeouts.sh [duration] [target]
#example: ./monitor-timeouts.sh 60 192.168.1.1
minutes=$1
target=$2
if [ $# -eq 0 ]; then
    minutes=1
    target=google.com
fi
if [ -z "$2" ]; then
    target=google.com
fi
pings=$((60 * $minutes))

system=`uname`
if [[ $system == *"Linux"* ]]; then
    extraflag="-O"
fi

echo "Start monitor for network timeouts at `date` for $minutes minute(s)."
echo "Target host: $target"
ping $target -i 1 -c $pings $extraflag | grep -i "timeout\|unreachable\|no answer\|statistics\|transmitted\|avg"
echo "End monitoring at `date`."
Superman.Lopez
fuente
¡Bienvenido a Super User! Su guión es lo suficientemente corto como para incluirlo en su publicación; debe editar su respuesta para incluirla
bertieb
Gracias por la sugerencia
Superman.Lopez