Pingは、ホストがインターネットプロトコル(IP)ネットワーク上で到達可能かどうかをテストするためのシンプルで広く使用されているクロスプラットフォームのネットワーキングユーティリティです。ターゲットホストに一連のInternet Control Message Protocol(ICMP)ECHO_REQUESTメッセージを送信し、ICMPエコーリプライ(またはECHO_RESPONSE)を待ちます。
ピングテストを実行して、コンピューターが他のコンピューター(ターゲットホスト)と通信できるかどうかを確認できます。以下のことを判断するのに役立ちます:
- ターゲットホストが到達可能(アクティブ)かどうか。
- パケットがターゲットホストに到達してコンピューターに戻るまでの時間(ターゲットホストとの通信のラウンドトリップタイム(rtt))を測定し、
- パケットロスはパーセンテージで表されます。
その出力は、ターゲットホストからの応答のリストと、最後のパケットがターゲットホストに到達してコンピューターに戻るまでの時間を示します。
通常は、送信されたパケット数と受信されたパケット数、パケットロスの割合、最小、最大、平均ラウンドトリップタイム、平均の標準偏差(mdev)を含むテストの統計的要約も表示されます。ピングテストに失敗すると、エラーメッセージが出力されます。
LinuxでのPingコマンドの例
この記事では、ネットワーク上のホストの到達可能性をテストするための12の実用的なpingコマンドの例を説明します。
目次
1. ドメインまたはIPアドレスのPing
ターゲットホストであるwww.google.comが到達可能かどうかを確認するために、単純なpingテストを実行できます。次に示すように、ドメイン名の代わりにIPアドレスを使用することもできます。
$ ping www.google.com OR $ ping 172.217.27.196
サンプル出力:
ping www.google.com PING www.google.com (172.217.27.196) 56(84) bytes of data. 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=1 ttl=111 time=5.01 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=2 ttl=111 time=4.75 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=3 ttl=111 time=5.37 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=4 ttl=111 time=4.99 ms ^C --- www.google.com ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3004ms rtt min/avg/max/mdev = 4.751/5.030/5.373/0.222 ms ...
上記のコマンドの結果から、pingは成功し、パケットが落ちていませんでした。pingテストの出力で重要なのは、各ping応答の最後にある時間です。
サーバーでpingテストを実行している場合、ここでの値は非常に重要であり、サーバーで実行しているアプリケーションの種類に依存します。
たとえば、単一のユーザー要求がUI上の結果を生成するためにデータベースに多くのクエリを発行するウェブアプリケーションを持っている場合、特定のサーバーへのping時間が低い場合、遅延なしにより多くのデータが転送されていることを意味し、逆も同様です。
2. ピングエコーリクエスト
次に示すように、-c
フラグを使用して、ECHO_REQUESTsを送信した後にpingが終了する回数を指定できます(この場合、pingテストは5パケット送信後に停止します)。
$ ping -c 5 www.google.com PING www.google.com (172.217.27.196) 56(84) bytes of data. 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=1 ttl=111 time=4.31 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=2 ttl=111 time=4.35 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=3 ttl=111 time=4.06 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=4 ttl=111 time=5.20 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=5 ttl=111 time=4.41 ms --- www.google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4006ms rtt min/avg/max/mdev = 4.064/4.464/5.195/0.383 ms
3. ピングインターバルタイムアウトの設定
-i
フラグを使用すると、各パケットの送信間隔を秒単位で設定できます。デフォルト値は1秒です。
$ ping -i 3 -c 5 www.google.com PING www.google.com (172.217.27.196) 56(84) bytes of data. 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=1 ttl=111 time=5.71 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=2 ttl=111 time=6.19 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=3 ttl=111 time=5.39 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=4 ttl=111 time=7.34 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=5 ttl=111 time=4.77 ms --- www.google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 12014ms rtt min/avg/max/mdev = 4.768/5.879/7.341/0.863 ms
4. ピングフラッディングによるDoS攻撃、別名ピングオブデス
高負荷条件下でのネットワークの応答を判断するには、「flood ping」を実行します。これは-f
スイッチを使用して可能な限り高速にリクエストを送信します。このオプションはrootのみが使用できます。それ以外の場合は、sudoコマンドを使用してroot特権を取得してください。
$ sudo ping -f www.google.com OR $ sudo ping -f -i 3 www.google.com #specify interval between requests PING www.google.com (172.217.163.36) 56(84) bytes of data. .......................................................................................................................................................................................^C --- www.google.com ping statistics --- 2331 packets transmitted, 2084 received, 10% packet loss, time 34095ms rtt min/avg/max/mdev = 29.096/29.530/61.474/1.417 ms, pipe 4, ipg/ewma 14.633/29.341 ms
5. LANのブロードキャストのピング
-b
オプションを使用してブロードキャストのピンを有効にできます。これにより、LANネットワークに接続されているすべてのIPアドレスから応答を受け取ることができます。
$ ping -b 192.168.0.0
6. ピングTTL値の設定
TTL – Time-to-live のネットワークホップ数を制限するために、-t
フラグを使用します。値は 1 から 255 の間で設定できます。異なるオペレーティングシステムは異なるデフォルト値を設定します。
パケットを受信した各ルーターは、カウントから少なくとも 1 を減算し、カウントがまだ 0 より大きい場合、パケットを次のホップに転送します。それ以外の場合は、パケットを破棄し、コンピューターに ICMP 応答を送信します。
この例では、TTL が超過しており、ping テストが失敗したことがスクリーンショットで示されています。
$ ping -t 10 www.google.com

7. Ping パケットサイズの設定
デフォルトのパケットサイズは、ping テストには十分ですが、特定のテストニーズに合わせて変更できます。ペイロードのサイズをバイト数で指定するには、-s
オプションを使用します。提供された値に ICMP ヘッダー用の追加の 8 バイトが含まれます。
$ ping -s 1000 www.google.com
8. Ping プリロードの設定
プリロードが追加されると、ping はその数のパケットを待機せずに送信します。ルートのみが 3 より多くのプリロードを選択できることに注意してください。それ以外の場合は、ルート特権を取得するために sudo コマンド を使用します。
$ sudo ping -l 5 www.google.com
9. Ping タイムアウトの設定
$ ping -W 10 www.google.com
10. 秒単位での応答待ち時間を設定する
秒単位でのタイムアウトを設定するには、送信されたパケットの数や受信されたパケットの数に関係なく、-w
フラグを使用します。
$ ping -w 5 www.google.com
11. Ping デバッグ ICMP パケット
-d
オプションを使用すると、次に示すように、デバッグ IP パケットの詳細を有効にできます。
$ ping -d www.google.com
12. Ping 詳細出力
-v
フラグを使用して詳細出力を有効にできます。
$ ping -v www.google.com
注意: Ping はネットワーク接続のテストに必ずしも使用されるわけではありません。単に、IP アドレスがアクティブか非アクティブかを知らせるだけです。
通常、トレースルートプログラムと一緒に使用されますが、MTR – 現代のネットワーク診断ツール は ping と traceroute の機能を組み合わせ、多くの追加機能を提供します。
ネットワーキングツールの包括的なリストについては、Linuxネットワーク管理、トラブルシューティング、およびデバッグ
要約
ピングは、ネットワーク上のホストのアクセシビリティをトラブルシューティングするための非常に一般的な方法です。この記事では、ネットワークデバイスの到達性をテストするための12の実用的なpingコマンドの例を説明しています。コメントフォームを介してご意見をお聞かせください。