インターネット接続の中断を監視する方法-Mac OS Xの場合


16

新しいISPに加入しましたが、この新しいISPで問題が発生しています。問題は、インターネット接続のいくつかの微小な中断、一種の遅延であり、おそらくプロキシのタイムアウトまたはネットワークへの接続のタイムアウトに関連しています。

これらの微小な中断はランダムに発生するため、技術者をオフィスに派遣するたびに問題が検出できないため、特にサービスが3、4時間安定してから再び問題を示し始めるため、私はそれを証明できません。

2つの理由で非常に迷惑です。何かをダウンロードしようとすると、ダウンロードが突然停止し、再度開始する必要があります。もう1つの理由は、イーサネットを使用して電話に接続されたVoIPボックスを使用し、このVoIPボックスが毎回接続を失い、VoIP電話が電話の受信/発信を停止し、検出するたびにボックスを再起動し、気付かずに電話をダウン。

私の質問は次のとおりです。インターネットサービスを一定期間監視し、サービスがダウンしたとき、グラフィックなどをプロットする方法を教えてください。Macで実行できるネットワークまたは接続の品質を監視するためのツールや方法はありますか?

私の考えは、それらを見せて自分が正しいことを証明するものを用意することです。


このQは本当に話題になることがあり、それが「良い質問」テンプレートフィット(からの推奨ソフトウェアが必要になることがあり、私は質問をするにはどうすればよいの?「私が持っている<問題-X -ネットワークの中断を私はどのように知っていないこと> X、Y、Z(検出したらVoIPを再起動します)を試しましたが、これらのプログラムはこれまたはそれのために動作しません。これを行うにはどうすればよいですか?」基本的に「インターネット接続の中断を監視する方法」と言うのではなく、「インターネット接続を監視するためのツール」を要求する唯一の問題ですか?
-Xen2050

回答:



7

次を使用する場合:

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

停止するまで継続的に実行され、10秒ごとにpingを実行10.20.30.40します(アドレスを変更します)

--apple-timeあなたが失敗を見ることができるので、それはそれぞれのpingの時間を記録することを意味します。そのようです:

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ターミナルでの実行はですか?pingを実行して応答するサーバーを見つけるだけです。正確な時間は表示されませんが、何かが間違っているという何らかの証拠が得られます。

追加して編集:少し前に同様の目的で使用しました。彼らは何も見つけられなかったため、私の(正直に言うと)高齢化したワイヤレスアクセスポイントが故障している可能性があると主張しましたが、「少なくとも1時間に1回はpingタイムアウトがあります」とエンジニアが問題をチェックするのに役立ちました。


2

ピン

インターネット接続を監視するには、単にpingコマンドを使用できます。ICMP ECHO_REQUESTを送信するだけで、応答が期待されます。

ルーターIPにpingを送信し、応答しない場合は、インターネットの中断としてISPに報告できます。

ルーターにファイアウォールがある場合は、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、たとえば

$ 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パケットだけで、インターネット接続はありません)。


対応するSYN-ACK応答がないSYNパケットを探すためにtcpdump出力を自動的に検索する簡単な方法(スクリプトのような)はありますか?
Xen2050

@ Xen2050私は、次のSようなフラグを探してダンプまたは出力をgrepすると思います。そのため、反対のものが必要です。5つのSYNパケットを連続して見つけることができる/ 構文を見つけたら、間違ったものを警告することができます(死んだホストに連絡していない限り)。sudo tcpdump -i en0 -nl | grep -C5 "Flags .S"| grep ackawksed
ケノーブ

ライブモニタリングの場合、接続が切断されると、ping -A www.yahoo.comがビープ音を鳴らします。IPアドレスを使用できますが、人間が読み取れるアドレスを使用すると、DNS障害もテストされます。
ブライアンフィット

1

このアプリは接続ステータスを記録し、Appleによって内部的に使用されていると主張することもあります。

ネットワークの停止を記録し、時間の経過に伴う速度をグラフ化します。Network Logger Proを使用して、Webサイトを監視し、速度、停止、および応答時間の履歴グラフを作成することもできます。

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

それは10ドルですが:/


1

これは、スループットが低いことに加え、私が抱えていた症状の1つでした。ケーブルモデムであることが判明しました。良いニュースは、新しいケーブルモデムを入手するように誰か説得する必要がない場合があることです。私のISPには、ケーブルモデムを新しいものに自由に交換できるというポリシーがあることがわかりました。あなたがそれを行うかどうかを確認してください。


おもしろいですが、要点はわかりました。はい、残念ながら私の接続はケーブルモデムによるものですが、それはまったく新しいものです(1か月前にインストールされました)。問題はケーブルネットワークにあると思われます。私はケーブルインターネットが好きではありませんでした(私の地域には他のブロードバンド会社がサービスを提供していないため、ケーブルインターネットの使用を余儀なくされました)。
SpaceDog

1

私自身の使用のために、これを確認するための簡単なBashスクリプトを作成しました。pingタイムアウトを監視する方法として使用します。ほとんどの答えがあなたが示唆するとおりです。スクリプトの利点は、成功したpingを含めるのではなく、画面上の出力にタイムアウトした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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.