ping - ネットワーク疎通確認
pingコマンドは、ICMP Echo Request を送信して、相手から Echo Reply が返るかを確認するための基本的なネットワーク診断コマンドです。
「接続できるか」「応答にどれくらい時間がかかるか」「ホスト名の名前解決に問題がないか」を切り分ける最初の一手としてよく使います。
pingコマンドの基本構文
ping <送信先のIPアドレスまたはホスト名>
ping [/t] [/a] [/n <回数>] [/l <サイズ>] [/f] [/i <TTL>] [/v <TOS>] [/r <回数>] [/s <回数>] [{/j <ホストリスト> | /k <ホストリスト>}] [/w <タイムアウト>] [/R] [/S <送信元アドレス>] [/4] [/6] <送信先>
基本的な使い方
ping www.google.com
この結果から、名前解決が成功し、相手から ICMP 応答も返ってきていることが分かります。
よく使うオプション
| オプション | 説明 |
|---|---|
/n <回数> | 送信回数を指定する。既定値は 4 回 |
/t | 中断するまで送り続ける |
/w <ミリ秒> | 応答待ち時間を指定する |
/a | IP アドレスからホスト名への逆引きを試す |
/4 | IPv4 を使用する |
/6 | IPv6 を使用する |
10 回だけ送信する
ping /n 10 example.com
中断するまで送り続ける
ping /t 192.168.1.1
継続監視を止めるときは Ctrl + C を押します。Ctrl + Break を押すと、送信を続けたまま、その時点の統計を表示できます。
タイムアウトを短くする
ping /w 1000 192.168.1.1
1 秒以内に応答がなければタイムアウトとして扱います。
pingの結果をどう読むか
応答が返ってくる場合
- 相手に到達できている
- 相手または途中経路が ICMP を遮断していない
- 応答時間の目安を確認できる
要求がタイムアウトしました。 と表示される場合
Request timed out.(日本語環境では「要求がタイムアウトしました。」)は、「相手が必ず停止している」ことを意味しません。
次のような原因でも発生します。
- 相手や途中のファイアウォールが ICMP を遮断している
- 経路上でパケットが落ちている
- 相手が負荷過多で応答できない
- 指定したタイムアウト値が短すぎる
宛先ホストに到達できません。 と表示される場合
自分側のネットワーク設定(IP アドレスやデフォルトゲートウェイ)や、相手までの経路に問題がある可能性があります。この表示は相手からの応答ではなく、自分または途中のルーターが返したエラーです。
ホスト名で失敗し、IP アドレスで成功する場合
この場合は、ネットワーク自体ではなく DNS や名前解決の問題である可能性が高いです。
ping に成功しても、Web サービスやデータベース接続まで正常とは限りません。 あくまで「ICMP
レベルで到達できるか」を確認するコマンドです。
実務でよくある使い方
デフォルトゲートウェイに到達できるか確認する
ping 192.168.1.1
ローカルネットワーク側に問題がないかを切り分けるときの基本です。
ホスト名の名前解決を確認する
ping /a 8.8.8.8
ping example.com
前者は逆引き、後者は正引きの確認に使えます。
まず自分自身(ping 127.0.0.1)、デフォルトゲートウェイ、社内サーバー、外部 IP(8.8.8.8 など)、外部ホスト名の順に確認すると、問題箇所を切り分けやすくなります。どこで初めて失敗するかが、原因の場所の目安になります。