Cara memonitor koneksi internet untuk gangguan - untuk Mac OS X

16

Saya telah berlangganan ISP baru dan saya mengalami masalah dengan ISP baru ini. Masalahnya adalah beberapa gangguan mikro pada koneksi internet, jenis kelambatan, yang mungkin terkait dengan timeout pada proxy mereka atau dalam koneksi saya ke jaringan mereka.

Karena gangguan mikro ini terjadi secara acak, saya tidak dapat membuktikan bahwa, karena setiap kali mereka mengirim teknisi ke kantor saya masalahnya tidak dapat dideteksi, khususnya karena layanan mungkin stabil selama 3, 4 jam dan kemudian mulai menunjukkan masalahnya lagi.

Ini sangat menjengkelkan karena dua alasan. Saya mengunduh sesuatu dan kemudian unduhan berhenti tiba-tiba dan saya harus mulai lagi. Alasan lain adalah bahwa saya menggunakan kotak VoIP yang terhubung ke telepon saya menggunakan ethernet dan kotak VoIP ini kehilangan koneksi setiap kali, dan telepon VoIP saya berhenti menerima / membuat panggilan, memaksa saya untuk me-restart kotak setiap kali saya mendeteksi dan tinggal berjam-jam dengan telepon mati, tanpa memperhatikan.

Pertanyaan saya adalah: Bagaimana saya bisa memonitor layanan internet untuk suatu periode, memberi tahu saya ketika layanan sedang down, plot grafik atau semacamnya? Adakah alat atau cara untuk memantau kualitas jaringan atau koneksi yang dapat berjalan di Mac?

Ide saya adalah memiliki sesuatu untuk ditunjukkan kepada mereka dan membuktikan bahwa saya benar.

SpaceDog
sumber
Q ini mungkin benar-benar sesuai dengan topik, cocok dengan templat "pertanyaan yang bagus" (dari Bagaimana saya mengajukan pertanyaan yang mungkin memerlukan perangkat lunak yang disarankan? ) "Saya memiliki <masalah-x - gangguan jaringan > yang saya tidak tahu caranya Pecahkan. Saya sudah mencoba X, Y, Z (restart VoIP ketika saya mendeteksinya) , tetapi program-program itu tidak berfungsi karena ini atau itu. Bagaimana saya melakukan ini? " Apakah satu-satunya masalah pada dasarnya meminta "Alat untuk memonitor koneksi internet" alih-alih mengatakan "Bagaimana cara memonitor koneksi internet untuk gangguan?
Xen2050

Jawaban:

5
Applications->Utilities->Console.app

Lihatlah log di sana sebagai awal.

Anda juga bisa melihat ke ntop atau Little Snitch .

CaseyIT
sumber
1
ntop.org <tautan yang benar ke ntop (saya pikir)
Frank Lämmer
Cari en0atau en1sekali Anda membuka console.app (nama antarmuka jaringan Anda) untuk melihat info jaringan.
Justin
6

Jika Anda menggunakan yang berikut ini:

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

Ini akan terus berjalan hingga berhenti dan melakukan ping setiap 10 detik ke 10.20.30.40(ubah alamat Anda)

The --apple-timeberarti bahwa itu akan mencatat waktu setiap ping sehingga Anda dapat melihat kegagalan. Seperti itu:

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

Bagaimana kalau pingberjalan di Terminal? Temukan saja server yang aktif dan menanggapi ping. Meskipun tidak menunjukkan waktu yang tepat, itu memberi Anda semacam bukti bahwa ada sesuatu yang salah.

Diedit untuk menambahkan: Saya sudah menggunakannya sendiri beberapa waktu lalu untuk yang serupa. Sementara mereka menyatakan bahwa jalur akses nirkabel saya (penuaan, jujur) mungkin salah, karena mereka tidak menemukan apa-apa, "Saya memiliki ping timeout setidaknya sekali setiap jam" membantu membuat insinyur memeriksa hal-hal.

Daniel Beck
sumber
2

Ping

Untuk memantau koneksi internet, Anda cukup menggunakan pingperintah. Itu hanya mengirim ICMP ECHO_REQUEST dan mengharapkan respons.

Ping IP router Anda, ketika tidak merespons, Anda dapat melaporkan ke ISP Anda sebagai gangguan internet.

Jika router Anda memiliki firewall, gunakan arpingsaja, atau cukup pilih host jarak jauh lain, mis

$ 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

Untuk memantau koneksi fisik Anda ke router, Anda dapat menggunakan arping, misalnya

$ sudo arping 192.168.0.1

Ini sangat berguna ketika WiFi Anda terus turun dan router Anda tidak menanggapi paket ICMP standar. Instal melalui Brew ( brew install arping).

Tcpdump

Ada tcpdumpyang bisa membuang traffic di jaringan. Misalnya untuk membuang semua paket keluar ke port 80dan 443, sintaksnya bisa:

sudo tcpdump -i en0 port http or port https

Untuk menulis ke dalam file, tambahkan -w file, lalu baca via -r file. Ini akan termasuk cap waktu yang tepat dari setiap paket jaringan yang diterima atau dikirim.

Untuk memeriksa apakah internet terputus, cari paket SYN (di bagian Bendera) yang dikirim komputer Anda, dan untuk masing-masing server harus membalas dengan SYN-ACK. Jika itu tidak terjadi dan tidak ada lalu lintas kembali (hanya paket SYN, maka tidak ada koneksi internet).

kenorb
sumber
Apakah ada cara mudah (seperti skrip) yang secara otomatis mencari keluaran tcpdump mencari paket SYN yang tidak memiliki balasan SYN-ACK yang sesuai?
Xen2050
@ Xen2050 Saya pikir saya akan menerima dump atau output dengan mencari Sflag seperti :, sudo tcpdump -i en0 -nl | grep -C5 "Flags .S"dari sana, jika Anda sudah ack dalam konteks (tambahan | grep ack), daripada berarti sesuatu merespons. Jadi, Anda perlu sesuatu yang berlawanan. Saya pikir Anda Anda menemukan beberapa awk/ sedsintaks yang dapat menemukan 5 paket SYN berturut-turut, maka itu dapat mengingatkan bahwa ada sesuatu yang salah (kecuali Anda menghubungi beberapa host yang mati).
kenorb
Untuk pemantauan langsung, ping-A www.yahoo.com akan berbunyi bip saat koneksi terputus. Meskipun Anda dapat menggunakan alamat IP, menggunakan alamat yang dapat dibaca manusia akan menguji kegagalan DNS juga.
brianfit
1

Aplikasi ini mencatat status koneksi Anda dan bahkan mengklaim itu digunakan secara internal oleh Apple.

Catat pemadaman jaringan Anda, kecepatan grafik dari waktu ke waktu, dan banyak lagi. Network Logger Pro juga dapat digunakan untuk memantau situs web dan menghasilkan grafik historis kecepatan, pemadaman, dan waktu respons.

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

Ini $ 10: /

Justin
sumber
1

Itu adalah salah satu gejala yang saya alami , selain throughput yang rendah. Ternyata modem kabel. Berita baiknya adalah Anda mungkin tidak perlu meyakinkan siapa pun untuk mendapatkan modem kabel baru. ISP saya ternyata memiliki kebijakan bahwa Anda bisa menukar modem kabel dengan yang baru sesuka hati. Periksa dan lihat apakah Anda akan melakukannya.

Jamie Cox
sumber
Menarik, tetapi Anda langsung ke pokok permasalahan. Ya, koneksi saya sayangnya dengan modem kabel, tetapi itu adalah merek baru (diinstal oleh mereka sebulan yang lalu). Saya menduga masalahnya adalah jaringan kabel mereka. Saya tidak pernah menyukai internet kabel (saya terpaksa menggunakannya, karena tidak ada perusahaan broadband lain yang menawarkan layanan di wilayah saya).
SpaceDog
1

Untuk penggunaan saya sendiri, saya telah menulis skrip Bash sederhana untuk memeriksa ini. Ini digunakan pingsebagai cara untuk memonitor timeout, persis seperti yang disarankan oleh sebagian besar jawaban. Keuntungan dari skrip ini adalah bahwa output di layar Anda hanya menampilkan ping yang batas waktunya, daripada menyertakan ping yang berhasil juga. Selain itu, Anda dapat melewati parameter untuk durasi pemantauan, bukan jumlah upaya ping. Singkatnya, ini hanya pembungkus untuk yang berikut: ping google.com -i 1 -c 60 | grep "timeout\|statistics\|transmitted\|avg" Sumbernya dan instruksi instalasi sederhana tersedia di tautan di bawah ini:

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

Saya menguji skrip pada macOS dan 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
sumber
Selamat Datang di Pengguna Super! Script Anda cukup pendek untuk dimasukkan dalam posting Anda; Anda harus mengedit jawaban Anda untuk memasukkannya
bertieb
Terima kasih atas sarannya
Superman.Lopez