Як відстежувати інтернет-з'єднання на предмет перебоїв - для Mac OS X


17

Я підписався на новий провайдер, і у мене виникли проблеми з цим новим провайдером. Проблеми полягають у декількох мікро перериваннях підключення до Інтернету, подібних відставаннях, які, мабуть, пов'язані із тимчасовими очікуваннями на їхніх проксі-серверах або з моїм підключенням до їх мережі.

Оскільки ці мікро перебої трапляються навмання, я не можу довести це, оскільки кожен раз, коли вони надсилають техніку до мого кабінету, проблема не виявляється, особливо тому, що служба може бути стабільною протягом 3, 4 години, а потім знову починати показувати проблему.

Це дуже дратує з двох причин. Я щось завантажую, а потім завантаження раптово припиняється, і я повинен почати заново. Іншою причиною є те, що я використовую коробку VoIP, підключену до свого телефону за допомогою Ethernet, і ця VoIP-коробка втрачає зв’язок щоразу, і мій VoIP-телефон перестає приймати / здійснювати дзвінки, змушуючи мене перезавантажувати коробку кожного разу, коли я його виявляю, і залишатися годинами телефон вниз, не помічаючи.

Моє запитання: Як я можу протягом періоду періоду відстежувати Інтернет-сервіс, повідомляючи, коли послуга не працює, накреслити графіку чи щось подібне? Будь-який інструмент або якийсь спосіб для контролю якості мережі або з'єднання, який може працювати на Mac?

Моя ідея - мати щось, щоб показати їм і довести, що я маю рацію.


1
Цей Q може бути дійсно на тему, він відповідає шаблону "хорошого питання" (з " Як мені задати питання, яке може потребувати рекомендації програмного забезпечення?" ) "У мене <проблема-x - перерви в мережі >, які я не знаю, як це зробити Я вже спробував X, Y, Z (перезапустити VoIP, коли я його виявляю) , але ці програми не працюють, тому що це чи інше. Як це зробити? " Єдина проблема, яка в основному вимагає "Інструменту моніторингу підключення до Інтернету" замість того, щоб сказати "Як слідкувати за підключенням до Інтернету для перебоїв?"
Xen2050

Відповіді:


5
Applications->Utilities->Console.app

Погляньте на журнали там для початку.

Ви також можете заглянути в ntop або Little Snitch .


1
ntop.org <правильне посилання на ntop (я думаю)
Frank Lämmer

Шукайте en0або en1після відкриття console.app (назва мережевого інтерфейсу), щоб побачити інформацію про мережу.
Джастін

7

Якщо ви використовуєте наступне:

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

Він буде працювати безперервно до зупинки та пінг кожні 10 секунд 10.20.30.40(змінити свою адресу)

Це --apple-timeозначає, що він записуватиме час кожного пінгу, щоб ви могли бачити збої. Так:

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

Як щодо pingзапуску в терміналі? Просто знайдіть увімкнутий сервер і відповідає на pings. Хоча він не показує точні часи, він дає вам якийсь доказ того, що щось не так.

Відредаговано, щоб додати: я використовував його деякий час тому для подібного. Хоча вони стверджували, що моя (старенька, чесно кажучи) точка бездротового доступу може бути винною, оскільки вони нічого не знайшли, "у мене пінг-тайми хоча б раз на годину" допомагали інженеру перевіряти речі.


2

Пінг

Для контролю за підключенням до Інтернету можна просто скористатися pingкомандою. Він просто надсилає ICMP ECHO_REQUEST і очікує на відповідь.

Пінг вашого IP-маршрутизатора, коли він не відповідає, ви можете повідомити провайдеру про перерву в Інтернеті.

Якщо ваш маршрутизатор має брандмауер, скористайтеся arpingнатомість або просто виберіть інший віддалений хост, наприклад

$ 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

Щоб контролювати ваше фізичне з'єднання з маршрутизатором, ви можете використовувати arping, наприклад,

$ sudo arping 192.168.0.1

Це особливо корисно, коли ваш WiFi постійно падає, а ваш маршрутизатор не відповідає стандартним пакетам ICMP. Встановити через Brew ( brew install arping).

Tcpdump

Є tcpdumpщо може скинути трафік в мережі. Наприклад , щоб скинути всі вихідні пакети в порт 80і 443, синтаксис може бути:

sudo tcpdump -i en0 port http or port https

Щоб записати у файл, додайте -w file, а потім прочитайте через -r file. Сюди будуть включені точні часові позначки кожного отриманого або відправленого мережевого пакету.

Щоб перевірити, чи не порушено Інтернет, знайдіть пакети SYN (у розділі Прапори), які надсилає ваш комп'ютер, і на кожен сервер повинен відповісти SYN-ACK. Якщо цього не відбувається, і трафік не повертається назад (лише SYN-пакети, то немає підключення до Інтернету).


Чи є простий спосіб (як скрипт), який автоматично шукає вихід tcpdump, шукаючи SYN-пакети, які не мають відповідного відповіді SYN-ACK?
Xen2050

@ Xen2050 Я думаю, що я би зіткнув звалище або вивід, шукаючи Sпрапор типу:, sudo tcpdump -i en0 -nl | grep -C5 "Flags .S"звідти, якщо ти прокинувся в контексті (додатково | grep ack), значить, щось відповів. Тож вам потрібно щось протилежне. Я думаю, ви знайдете синтаксис awk/ sedсинтаксис, який може знайти 5 SYN-пакетів підряд, то це може попередити, що щось не так (якщо ви не звертаєтесь до якогось мертвого хоста).
kenorb

Для прямого моніторингу, ping -A www.yahoo.com подає звуковий сигнал, коли з'єднання припиняється. У той час як ви можете використовувати IP-адресу, використання людської читаної адреси також перевірятиме збої DNS.
brianfit

1

Цей додаток записує ваш статус підключення і навіть стверджує, що компанія Apple використовується внутрішньо.

Реєструйте відключення мережі, швидкість графіку з часом тощо. Network Logger Pro також може використовуватися для моніторингу веб-сайтів та створення історичних графіків їх швидкості, відключення та часу реагування.

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

Це $ 10, хоча: /


1

Це був один із симптомів у мене , крім низької пропускної здатності. Це виявився кабельним модемом. Хороша новина - вам, можливо, не доведеться переконувати когось отримати новий кабельний модем. У мого провайдера виявилася така політика, що ви можете просто поміняти свій кабельний модем на новий за бажанням. Перевірте і подивіться, чи зробить це ваш.


Цікаво, але ви дійшли до суті. Так, мій зв’язок, на жаль, є через кабельний модем, але це абсолютно новий (він був встановлений ними місяць тому). Я підозрюю, що проблема полягає в їхній кабельній мережі. Мені ніколи не подобалося кабельне інтернет (я був змушений ними користуватися, оскільки в моєму регіоні немає жодної широкосмугової компанії, яка пропонує послуги).
SpaceDog

1

Для власного використання я написав простий сценарій Bash, щоб перевірити це. Він використовується pingяк спосіб моніторингу таймаутів, точно так, як пропонує більшість відповідей. Перевага сценарію полягає в тому, що на виході на екрані відображаються лише ті пінг-тайми, які вичерпано, а не включаючи також успішні пінг-файли. Крім того, ви можете передавати параметр протягом тривалості моніторингу, а не кількість спроб ping. Коротше кажучи, це лише обгортка для наступного: ping google.com -i 1 -c 60 | grep "timeout\|statistics\|transmitted\|avg" Його джерело та прості інструкції з установки доступні за посиланням нижче:

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

Я протестував сценарій на macOS та 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`."

Ласкаво просимо до Супер Користувача! Ваш сценарій достатньо короткий, щоб включити його до посади; ви повинні відредагувати свою відповідь, щоб включити її
bertieb

Дякую за пропозицію
Superman.Lopez
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.