Come monitorare la connessione Internet per interruzioni - per Mac OS X


16

Mi sono abbonato a un nuovo ISP e sto riscontrando problemi con questo nuovo ISP. I problemi sono diverse microinterruzioni della connessione Internet, un tipo di ritardo, che è probabilmente correlato a timeout sui loro proxy o nella mia connessione alla loro rete.

Poiché queste microinterruzioni si verificano in modo casuale, non posso provarlo, perché ogni volta che inviano un tecnico nel mio ufficio il problema non è rilevabile, specialmente perché il servizio potrebbe essere stabile per 3, 4 ore e quindi ricominciare a mostrare il problema.

È molto fastidioso per due motivi. Sto scaricando qualcosa, quindi il download si interrompe improvvisamente e devo ricominciare. Un altro motivo è che uso una casella VoIP connessa al mio telefono tramite Ethernet e questa casella VoIP perde ogni volta la connessione e il mio telefono VoIP interrompe la ricezione / effettuazione delle chiamate, costringendomi a riavviare la casella ogni volta che la rilevo e per rimanere ore con il telefono in basso, senza accorgersene.

La mia domanda è: come posso monitorare il servizio Internet per un periodo, comunicarmi quando il servizio è inattivo, tracciare un grafico o qualcosa del genere? Qualche strumento o un modo per monitorare la qualità della rete o della connessione che può essere eseguita su un Mac?

La mia idea è quella di avere qualcosa da mostrare loro e dimostrare che ho ragione.


Questo Q può davvero essere in tema, si adatta al modello "buona domanda" (da Come posso fare una domanda che potrebbe richiedere la raccomandazione di software? ) "Ho <problem-x - interruzioni di rete > che non so come Ho già provato X, Y, Z (riavvio VoIP quando lo rilevo) , ma quei programmi non funzionano perché questo o quello. Come faccio? " L'unico problema è fondamentalmente chiedere uno "Strumento per monitorare la connessione a Internet" invece di dire "Come monitorare la connessione a Internet per interruzioni?
Xen2050,

Risposte:


5
Applications->Utilities->Console.app

Dai un'occhiata ai registri lì come inizio.

Potresti anche guardare in ntop o Little Snitch .


1
ntop.org <collegamento corretto a ntop (credo)
Frank Lämmer

Cerca en0o en1dopo aver aperto console.app (i nomi delle tue interfacce di rete) per visualizzare le informazioni di rete.
Justin,

7

Se si utilizza quanto segue:

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

Funzionerà continuamente fino all'arresto e eseguirà il ping ogni 10 secondi a 10.20.30.40(cambia per il tuo indirizzo)

Ciò --apple-timesignifica che registrerà il tempo di ogni ping in modo da poter vedere gli errori. Così:

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

2

Che ne dici di pingcorrere nel Terminal? Basta trovare un server che è acceso e risponde ai ping. Anche se non mostra i tempi esatti, ti dà una sorta di prova che qualcosa non va.

Modificato per aggiungere: l'ho usato io stesso qualche tempo fa per un simile. Mentre sostenevano che il mio punto di accesso wireless (invecchiando, a dire il vero) potrebbe essere in errore, dal momento che non trovavano nulla, "ho dei timeout di ping almeno una volta ogni ora" mi ha aiutato a far controllare l'ingegnere.


2

ping

Per monitorare la connessione Internet, puoi semplicemente usare il pingcomando. Invia semplicemente ICMP ECHO_REQUEST e si aspetta la risposta.

Esegui il ping dell'IP del router, quando non risponde, puoi segnalare al tuo ISP come interruzione di Internet.

Se il tuo router ha un firewall, usa arpinginvece, o semplicemente scegli un altro host remoto, ad es

$ 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

Per monitorare la connessione fisica al router, è possibile utilizzare arping, ad es

$ sudo arping 192.168.0.1

Ciò è particolarmente utile quando il WiFi continua a cadere e il router non risponde ai pacchetti ICMP standard. Installa tramite Brew ( brew install arping).

tcpdump

C'è tcpdumpche può scaricare il traffico su una rete. Ad esempio per scaricare in porta tutti i pacchetti in uscita 80e 443la sintassi potrebbe essere:

sudo tcpdump -i en0 port http or port https

Per scrivere nel file, aggiungere -w file, quindi leggerlo tramite -r file. Ciò includerà i timestamp esatti di ciascun pacchetto di rete ricevuto o inviato.

Per verificare se Internet è interrotto, cerca i pacchetti SYN (nella sezione Flags) che il tuo computer invia e per ognuno il server dovrebbe rispondere con un SYN-ACK. Se ciò non accade e non vi è alcun traffico di ritorno (solo pacchetti SYN, non esiste una connessione Internet).


Esiste un modo semplice (come uno script) che cerca automaticamente l'output di tcpdump alla ricerca di pacchetti SYN che non hanno una risposta SYN-ACK corrispondente?
Xen2050,

@ Xen2050 Penso che avrei grep il dump o l'output cercando Sflag come :, sudo tcpdump -i en0 -nl | grep -C5 "Flags .S"da lì, se hai colto nel contesto (extra | grep ack), significa che qualcosa ha risposto. Quindi hai bisogno di qualcosa di opposto. Penso che tu trovi alcuni awk/ sedsintassi che possono trovare 5 pacchetti SYN in una riga, quindi può avvisare che qualcosa non va (a meno che tu non stia contattando un host morto).
Kenorb,

Per il monitoraggio live, il ping -A www.yahoo.com emette un segnale acustico quando la connessione si interrompe. Sebbene sia possibile utilizzare un indirizzo IP, l'utilizzo di un indirizzo leggibile dall'uomo metterà alla prova anche gli errori DNS.
brianfit,

1

Questa app registra lo stato della tua connessione e sostiene addirittura che è utilizzata internamente da Apple.

Registra interruzioni di rete, velocità dei grafici nel tempo e altro ancora. Network Logger Pro può anche essere utilizzato per monitorare siti Web e produrre grafici storici di velocità, interruzioni e tempi di risposta.

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

Sono $ 10 però: /


1

Quello era uno dei sintomi che stavo riscontrando , oltre alla bassa produttività. Si è rivelato essere il modem via cavo. La buona notizia è che potresti non dover convincere nessuno a ottenere un nuovo modem via cavo. Il mio ISP si è rivelato avere la politica che potresti semplicemente scambiare il tuo modem via cavo con uno nuovo praticamente a piacimento. Controlla e vedi se il tuo lo farà.


Interessante, ma sei arrivato al punto. Sì, purtroppo la mia connessione avviene tramite modem via cavo, ma è una novità (è stata installata da loro un mese fa). Sospetto che il problema sia la loro rete via cavo. Non mi è mai piaciuto Internet via cavo (sono stato costretto a usarli, perché non esiste un'altra società a banda larga che offre servizi nella mia regione).
SpaceDog,

1

Per uso personale, ho scritto un semplice script Bash per verificarlo. Utilizza pingcome modo per monitorare i timeout, esattamente come la maggior parte delle risposte suggerisce. Il vantaggio dello script è che l'output sullo schermo mostra solo i ping scaduti, anziché includere anche i ping di successo. Inoltre, è possibile passare un parametro per la durata del monitoraggio, anziché per il numero di tentativi di ping. In breve, è solo un wrapper per quanto segue: la ping google.com -i 1 -c 60 | grep "timeout\|statistics\|transmitted\|avg" sua fonte e le semplici istruzioni di installazione sono disponibili al seguente link:

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

Ho testato lo script su macOS e 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`."

Benvenuto in Super User! Il tuo script è abbastanza breve da includere nel tuo post; dovresti modificare la tua risposta per includerla
bertieb

Grazie per il suggerimento
Superman.Lopez
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.