失敗したpingを表示する方法は?


24

Windows pingを使用している場合、失敗したpingが表示されます。Ubuntuには同様の機能がありますか?

pingの失敗は、ネットワークのデバッグ時に非常に役立ちます。どうやってこれを解決しますか?まあ、私は簡単な解決策が欲しいだけで、長いスクリプトを取得したくありません。


2
質問を補足するサンプル出力またはスクリーンショットを提供できますか?

1
あなたは探していますか、またはそれよりも詳細な情報5 packets transmitted, 0 received, 100% packet loss, time 4032ms(pingが終了したときに、それ自体でまたはCtrl + Cによって印刷されるような情報)ですか?個々のpingに関する個別のデータを探していますか?
エリアカガン

1
Linuxはすばらしく、ここにいる私たち全員が多くの理由でそれを愛しています。はい、基本的なCLIツールでもです。はい、基本的なネットワークCLIツールでもです!問題が発生したときにメッセージを画面に表示する簡単な方法がない場合は、「欠落している機能」として認識しなければなりません。OPが何を求めているのか正確にはわからないほど複雑なふりをしたくはありません(特に、周囲の数百万のボックスでデフォルトでオンになっている機能の場合)。
-ndemou

この機能は以前のlinux pingにあったと断言できたでしょう。MacOSにも存在します(unixの上に構築されています)。なぜそこにあるべきではないのかは私を超えています。断続的に動作するラインがあり、ブラックアウトの長さを見つけるには、ラインを明確に区別するのではなく、ジャンプを探して出力を選別する必要があります。
シルヴィオレヴィ

回答:


26

正しい答えは、「pingの失敗に失敗した」というようなものはありません。(「Destination unreachable」のような失敗応答は常に出力されます。これは、応答がないこととはまったく異なります。)

Pingユーティリティは、この特定のpingが失われたと判断した場合でも、受信したすべての応答を出力します。順不同で返信を受け取ることは完全に可能です。

でも、私のAndroid携帯電話上で、株式のpingユーティリティは、これらの2つのオプションをサポートしています。
-Dは、すべてのメッセージの前にタイムスタンプを出力します
-O応答が時間内に受信されないメッセージを印刷し、それは頼まれた多かれ少なかれものです
ただし、これらのオプションはどこでもサポートされていないようです(たとえば、Debian Wheezyには私が知る限りそれらが欠けていますが、Jessieにはあります。busybox pingサポートしていません)。

以下は、私が管理した出力の例です(重要でないping応答はスキップされました)。

u0_a93@NX505J:/ $ ping -D -O 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
[1440545014.805478] 64 bytes from 8.8.8.8: icmp_seq=1 ttl=244 time=116 ms
~~~~~~~~~~
[1440545142.995443] 64 bytes from 8.8.8.8: icmp_seq=129 ttl=244 time=110 ms
[1440545144.885601] no answer yet for icmp_seq=130
[1440545145.455485] 64 bytes from 8.8.8.8: icmp_seq=131 ttl=244 time=568 ms
[1440545145.455780] 64 bytes from 8.8.8.8: icmp_seq=130 ttl=244 time=1569 ms
[1440545146.005850] 64 bytes from 8.8.8.8: icmp_seq=132 ttl=244 time=119 ms
~~~~~~~~~~
[1440545254.055962] 64 bytes from 8.8.8.8: icmp_seq=240 ttl=244 time=115 ms
^C
--- 8.8.8.8 ping statistics ---
240 packets transmitted, 240 received, 0% packet loss, time 239250ms
rtt min/avg/max/mdev = 109.062/138.757/1569.620/101.608 ms, pipe 2

#130が最初に欠落していると報告され、#131の後に受信さ、最後にパケット損失がゼロであると報告されていることに注意してください。


Windowsに関する追加の注意:

Windowsでは、pingは応答をより長く待ってから欠落していると宣言し、後で来る場合は無視するようです。

デフォルトでは、間隔は1秒、タイムアウトは4秒です。したがって
、RTTが低い場合、pingは1秒間隔で送信されます。
RTT> 4の場合、pingは4秒間隔(または5、不明)で送信され、サーバーが応答しなかった場合と同じように、すべて失敗として報告されます。


1
以下のための1 -Oのオプションは、存在しているとのiputils-pingのパッケージバージョン3からの信頼できる(&Linuxのミント17.2)のUbuntuでうまく機能:20121221-4ubuntu1.1
Xen2050

11

EvgEnZhによる回答から部分的に外れますが、自分のバージョンでは:

ping -O -q 8.8.8.8

これにより、返信に時間がかかりすぎる場合や返信されない-O場合()にメッセージが出力され、返信された場合にメッセージが表示されなくなります(-q)。その結果、パケットが欠落した場合にのみ出力が得られます。これにより、断続的な問題を見つけるのがはるかに簡単になり、壊れた少数の場所について「機能している」メッセージの山をふるいにかける必要がなくなります。


-Oトリガーは、レイテンシが予想よりも高いことを意味するだけであることに注意してください。多くの場合、実際の問題を示していますが、常にではありません。回答で投稿したログは、弱いGPRS接続で取得されました。2分以上で単一の異常な応答しか捕捉できませんでしたが、多くの応答が「後期」で届きました。ずさんな接続が数回圧倒され、連続していくつかのpingが欠落していると報告され、数秒後にすべてが接続されました。接続はまだ信頼性があり(おそらくGPRSが内部的に再送信を処理したのかもしれませんが、わかりません)、SSHアクセスでも使用するのは非常に苦痛です。
EvgEnZh

3

たぶんping -fあなたに適しています。pingマニュアルから:

-f

フラッディングping。ECHO_REQUESTが送信されるたびにピリオド ''。 ''が印刷され、ECHO_REPLYが受信されるたびにバックスペースが印刷されます。これにより、ドロップされているパケットの数が迅速に表示されます。intervalが指定されていない場合、intervalをゼロに設定し、パケットが戻ってくるのと同じ速さで、または1秒間に100回、どちらか大きい方を出力します。スーパーユーザーのみがゼロ間隔でこのオプションを使用できます。

毎秒1つのecho_requestの場合、次のようになります ping -i 1 -f 8.8.8.8


新しい機能かどうかはわかりませんが、失敗したpingを確認できました。
王子1986年

失敗したpingを報告するためにどのオプションを使用しましたか?pingの失敗に対してどのようなメッセージが表示されますか?
ダニエルユステアロカ

pingを使用したばかりですが、メッセージは次のようになります$ ping 172.18.1.12 PING 172.18.1.12(172.18.1.12)56(84)バイトのデータ。172.18.1.224からicmp_seq = 1宛先ホストに到達不能172.18.1.224からicmp_seq = 2宛先ホストに到達不能172.18.1.224からicmp_seq = 3宛先ホストに到達不能
王子1986年

2
「Destination Host Unreachable」はpingタイムアウトとは
異なり

レコードを残さないので、ping -fは答えではありません。必要なのは、pingの成功と失敗の別の種類のラインです。そのため、停電が発生する頻度と時間を(サービスが断続的な状況で)すぐに知ることができます。
シルヴィオレヴィ

0

-vオプションを使用しても、pingは実行しません。この質問をご覧ください。しかし、これが本当に重要な(または楽しい)場合は、ソースをダウンロードし、適切なprintf呼び出しを含むようにコードを変更できます。それに適した場所は、メソッド 'send_probe'の最後です(12.10の619行目)...

最初にソースを取得します

apt-get source iputils
cd iputils*

編集する

gedit ping.c

生成されたパッケージをビルドしてインストール...

apt-get install libsysfs-dev
dpkg-buildpackage

私はこれをやりたい(そしてこの答えを10回支持する)が、何か足りないものがあるに違いない。私はsudo -sの下で作業しています。ping.cを編集した後、「make」を試みると、「fatal error:sys / capability.h:No such file」というメッセージが表示されます。答えの次の2行(apt-get installおよびdpkg -...)に従うと、エラーは表示されませんが、実行可能ファイルがどこに配置されているのかわかりません。古い実行可能ファイル(/ bin / ping)はまだ存在します。タイムスタンプから古いことと、動作に違いがないためです。
シルヴィオレヴィ

-1

すべての答えをありがとう。最新のubuntu pingはpingが失敗したことを示すことができるようです。

再度、感謝します。


1
いいえ、そうではありません(少なくとも2015年1月まで)「Destination Host Unreachable」はpingタイムアウトと同じではありません
-ndemou

なぜこれが受け入れられた答えですか?ping -O -q 8.8.8.8行く方法です。
theV0ID
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.