Como monitorar a conexão com a Internet quanto a interrupções - para Mac OS X

16

Eu me inscrevi em um novo ISP e estou tendo problemas com esse novo ISP. Os problemas são várias micro interrupções na conexão à Internet, tipo de defasagem, que provavelmente estão relacionadas a tempos limite nos proxies ou na minha conexão com a rede.

Como essas micro interrupções ocorrem aleatoriamente, não posso provar isso, porque toda vez que eles enviam um técnico ao meu escritório, o problema não é detectável, principalmente porque o serviço pode ficar estável por 3, 4 horas e depois começa a mostrar o problema novamente.

É muito chato por duas razões. Estou baixando algo e, em seguida, o download para de repente e tenho que começar novamente. Outro motivo é que eu uso uma caixa VoIP conectada ao meu telefone usando Ethernet e essa caixa VoIP perde a conexão todas as vezes, e meu telefone VoIP para de receber / fazer chamadas, forçando-me a reiniciar a caixa toda vez que a detecto e a permanecer horas com ele. o telefone desligado, sem perceber.

Minha pergunta é: como posso monitorar o serviço de Internet por um período, informando quando o serviço está inoperante, plotar um gráfico ou algo assim? Alguma ferramenta ou alguma maneira de monitorar a qualidade da rede ou conexão que pode ser executada em um Mac?

Minha idéia é ter algo para mostrar a eles e provar que estou certo.

Cao espacial
fonte
Este Q pode realmente estar no tópico, ele se encaixa no modelo "boa pergunta" (em Como faço uma pergunta que pode exigir a recomendação de software? ) "Tenho <problema-x - interrupções de rede > que não sei como fazer" Eu já tentei X, Y, Z (reinicio o VoIP quando o detecto) , mas esses programas não funcionam porque isso ou aquilo. Como faço isso? " É o único problema, basicamente, pedindo uma "ferramenta para monitorar ligação à Internet" em vez de dizer "Como monitorar conexão de internet para interrupções?
Xen2050

Respostas:

5
Applications->Utilities->Console.app

Dê uma olhada nos logs lá como um começo.

Você também pode procurar no ntop ou no Little Snitch .

CaseyIT
fonte
1
ntop.org <link correto para ntop (eu acho) #
Frank Lämmer 14/03
Pesquise en0ou en1depois de abrir console.app (nome (s) da sua interface de rede) para ver informações da rede.
Justin
7

Se você usar o seguinte:

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

Ele será executado continuamente até parar e executar ping a cada 10 segundos para 10.20.30.40(mudar para o seu endereço)

Os --apple-timemeios de que ele irá registrar o tempo de cada de ping assim você pode ver falhas. Igual a:

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
fonte
2

Que tal pingcorrer no Terminal? Basta encontrar um servidor ligado e responder aos pings. Embora não mostre os horários exatos, fornece algum tipo de prova de que algo está errado.

Editado para adicionar: usei-o há algum tempo para um similar. Enquanto eles sustentavam que o meu ponto de acesso sem fio (antigo, para ser honesto) pode estar com defeito, uma vez que não encontraram nada, "Eu tenho tempo limite de ping pelo menos uma vez a cada hora", ajudando o engenheiro a verificar as coisas.

Daniel Beck
fonte
2

Ping

Para monitorar a conexão à Internet, você pode simplesmente usar o pingcomando Apenas envia ICMP ECHO_REQUEST e espera a resposta.

Faça um ping no IP do seu roteador. Quando não estiver respondendo, você poderá reportar ao ISP como interrupção da Internet.

Se o seu roteador tiver firewall, use arpingou simplesmente escolha outro host remoto, por exemplo

$ 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 monitorar sua conexão física com o roteador, você pode usar arping, por exemplo,

$ sudo arping 192.168.0.1

Isso é especialmente útil quando o seu WiFi continua caindo e o roteador não responde aos pacotes ICMP padrão. Instale via Brew ( brew install arping).

Tcpdump

Existe um tcpdumpque pode despejar tráfego em uma rede. Por exemplo, para despejar todos os pacotes de saída na porta 80e 443, a sintaxe pode ser:

sudo tcpdump -i en0 port http or port https

Para escrever no arquivo, adicione -w filee leia-o via-r file . Isso incluirá carimbos de data e hora exatos de cada pacote de rede que está sendo recebido ou enviado.

Para verificar se a Internet está interrompida, procure pacotes SYN (na seção Bandeiras) que o computador envia e para cada um o servidor deve responder com um SYN-ACK. Se isso não estiver acontecendo e não houver retorno de tráfego (apenas pacotes SYN, não haverá conexão com a Internet).

kenorb
fonte
Existe uma maneira fácil (como um script) que procure automaticamente a saída do tcpdump procurando pacotes SYN que não tenham resposta SYN-ACK correspondente?
Xen2050 06/04
@ Xen2050 Acho que gostaria de receber o dump ou output procurando Sflag como: a sudo tcpdump -i en0 -nl | grep -C5 "Flags .S"partir daí, se você concordar com o contexto (extra | grep ack), isso significa que algo respondeu. Então você precisa de algo oposto. Eu acho que você encontra alguma sintaxe awk/ sedque pode encontrar 5 pacotes SYN seguidos e, em seguida, pode alertar que algo está errado (a menos que você esteja entrando em contato com algum host morto).
Kenorb # 6/16
Para monitoramento ao vivo, ping -A www.yahoo.com emite um sinal sonoro quando a conexão é interrompida. Embora você possa usar um endereço IP, o uso de um endereço legível por humanos também testará falhas de DNS.
Brianfit
1

Este aplicativo registra o status da sua conexão e até afirma que é usado internamente pela Apple.

Registre as interrupções de rede, a velocidade dos gráficos ao longo do tempo e muito mais. O Network Logger Pro também pode ser usado para monitorar sites e produzir gráficos históricos de suas velocidades, interrupções e tempos de resposta.

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

No entanto, são US $ 10: /

Justin
fonte
1

Esse era um dos sintomas que eu estava tendo , além da baixa taxa de transferência. Acabou sendo o modem a cabo. A boa notícia é que talvez você não precise convencer ninguém a adquirir um novo modem a cabo. Meu ISP acabou tendo a política de que você poderia trocar seu modem a cabo por um novo praticamente à vontade. Verifique e veja se o seu fará isso.

Jamie Cox
fonte
Interessante, mas você chegou ao ponto. Sim, infelizmente minha conexão é por modem a cabo, mas é uma novidade (foi instalada por eles há um mês). Eu suspeito que o problema é a sua rede a cabo. Eu nunca gostei da internet a cabo (fui forçado a usá-las, porque não há outra empresa de banda larga oferecendo serviços na minha região).
SpaceDog 27/10/10
1

Para meu próprio uso, escrevi um script Bash simples para verificar isso. Ele é usado pingcomo maneira de monitorar tempos limite, exatamente como a maioria das respostas sugere. A vantagem do script é que a saída na tela mostra apenas os pings que atingiram o tempo limite, em vez de incluir também os pings bem-sucedidos. Além disso, você pode passar um parâmetro para a duração do monitoramento, em vez do número de tentativas de ping. Em resumo, é apenas um invólucro para o seguinte:ping google.com -i 1 -c 60 | grep "timeout\|statistics\|transmitted\|avg" Suas fontes e instruções de instalação simples estão disponíveis no link abaixo:

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

Testei o script no macOS e no 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
fonte
Bem-vindo ao Super Usuário! Seu script é curto o suficiente para incluir em sua postagem; você deve editar sua resposta para incluí-lo
bertieb
Obrigado pela sugestão
Superman.Lopez #