Linux / コマンド / ping - ホストの応答と往復時間の確認

pingはICMP(Internet Control Message Protocol)のEchoリクエストを送り、応答の有無と往復時間(RTT:Round Trip Time)を確認します。ネットワーク接続を確認する最初のステップですが、応答がないからといってサービス全体が障害であるとは断定できません。

応答時間は宛先まで行って戻ってくる時間であり、送信経路、混雑、優先順位のポリシーによって変わります。一部のホストやファイアウォールはICMPをブロックまたは制限します。ホスト名を指定する場合、DNS(Domain Name System)による名前とIPアドレスの対応付けも関与するため、IPアドレスを対象に再確認すると原因を絞り込むことができます。

基本的な文法

ping [オプション] 宛先

インストールされている実装とオプションは、配布版によって異なる場合があります。man pingで現在のシステムの説明を確認してください。

使用例

送信回数の制限

-c 4でEchoリクエストを4回送信します。応答を4回受け取ることを保証する指定ではありません。example.comは説明用ドメインなので、実際には確認してよいホスト名に置き換えてください。

ping -c 4 example.com

IPv4での応答確認

IPv4アドレスを選択して応答を確認します。

ping -4 -c 4 example.com

応答待ち時間制限

-W 2は、応答が得られない場合の待ち時間を2秒に指定します。コマンド全体を2秒で打ち切る指定ではありません。全体の期限は-wで指定します。192.0.2.1は文書用アドレスなので、実際の許可された宛先に置き換えます。

ping -c 4 -W 2 192.0.2.1

応答時間と損失率の読み取り

次はループバックアドレス127.0.0.1へ2回送信して、同じホスト内のIP処理と応答を確認する例です。成功しても、ネットワークケーブルや外部への経路を確認できたことにはなりません。

ping -c 2 127.0.0.1

通常のループバック環境の要約出力例:

2 packets transmitted, 2 received, 0% packet loss

応答行のtime=はミリ秒単位の往復時間で、実行ごとに異なります。リモート対象が応答しなくても必ずしもサーバーが停止しているわけではありません。ファイアウォールでICMPがブロックされている場合や経路に問題がある場合もあるため、サービスポートやDNSの状態も別途確認してください。

主なオプションと形式

オプション・形式 説明
-c 回数 指定したリクエスト数だけ送信して終了します。
-4 / -6 IPv4またはIPv6を使用します。
-W 秒 応答がない場合の待ち時間を指定します。
-w 秒 全体の実行期限を指定します。
-i 秒 リクエスト間隔を指定します。

使用する際の注意点

診断に必要な回数と間隔で実行します。損失率100%でも、ICMPの遮断、応答制限、経路や宛先の問題など複数の原因が考えられます。一方、ホスト名の解決に失敗した場合は通常名前解決エラーとなり、送信済みパケットの損失とは区別します。経路はipによるルーティングの確認、待ち受けポートはssによるソケット状態の確認と合わせて切り分けてください。

よくある質問

pingに応答がない場合、サーバーが停止しているのでしょうか?

そのように断定することはできません。ファイアウォールやポリシーがICMP応答を遮断しても、Web・SSHサービスは正常に稼働している場合があります。

公式ドキュメント

オプションの正確な動作や実装ごとの差異は、pingに関する公式文書で確認できます。