PINGコマンドの使い方完全ガイド!初心者でもわかる実践的な解説

プログラミング・IT
スポンサーリンク
  1. PINGコマンドとは
    1. PINGという名前の由来
  2. PINGコマンドの仕組み
    1. ICMPプロトコルを使用
    2. 動作の流れ
  3. 基本的な使い方
    1. Windowsでの起動方法
    2. Linuxでの起動方法
    3. 基本構文
    4. 具体例
  4. 実行結果の見方
    1. Windows版の実行例
    2. 各項目の意味
    3. 統計情報
  5. Windowsの主要オプション
    1. -t:連続してpingを送信
    2. -n:送信回数を指定
    3. -l:パケットサイズを指定
    4. -f:フラグメント禁止
    5. -i:TTL値を設定
    6. -w:タイムアウト時間を指定
    7. -a:ホスト名を表示
    8. -4と-6:IPバージョンを指定
    9. オプションの組み合わせ
  6. Linuxの主要オプション
    1. -c:送信回数を指定
    2. -i:送信間隔を指定
    3. -s:パケットサイズを指定
    4. -W:タイムアウト時間を指定
    5. -t:TTL値を設定
    6. -f:高速送信(フラッド)
    7. -b:ブロードキャストping
    8. -q:簡易表示モード
  7. 実用例とトラブルシューティング
    1. インターネット接続の確認
    2. 自分のネットワーク環境の確認
    3. 名前解決の確認
    4. サーバー再起動の監視
    5. ネットワークの安定性テスト
    6. 経路上の問題の切り分け
  8. 応答がない場合の原因
    1. 1. 相手が起動していない
    2. 2. 自分がインターネットに接続されていない
    3. 3. ファイアウォールでブロックされている
    4. 4. IPアドレスやドメイン名の間違い
    5. 5. 経路上のルーターに問題
    6. 6. DNS(名前解決)の問題
  9. エラーメッセージと対処法
    1. Request timed out
    2. Destination host unreachable
    3. Unknown host
    4. Network is unreachable
    5. General failure
  10. PINGコマンドの注意点
    1. ネットワークに負荷をかける
    2. ログに記録される
    3. Ping Flood攻撃
    4. pingが通らない=障害ではない
    5. 応答時間は参考値
  11. 代替コマンドと組み合わせ
    1. traceroute(tracert)コマンド
    2. nslookupコマンド
    3. pathpingコマンド(Windows)
    4. mtrコマンド(Linux)
    5. nmapコマンド
  12. まとめ

PINGコマンドとは

PINGコマンドは、ネットワーク上の相手と通信できるかを確認するコマンドです。
「Packet InterNet Groper」の略称で、相手が応答するかをテストします。

ネットワークトラブルの診断で最もよく使われる基本コマンドです。
インターネットに繋がらない、特定のサイトにアクセスできない、そんな時にまず使うのがPINGコマンドです。

PINGという名前の由来

潜水艦のソナーが発する「ピン」という音波に由来しています。
ソナーは音波を発射して、跳ね返ってくることで物体の位置を知ります。

PINGコマンドも同じ原理です。
データパケットを送信して、相手から返信があるかを確認します。

PINGコマンドの仕組み

ICMPプロトコルを使用

PINGはICMP(Internet Control Message Protocol)というプロトコルを使用します。
ICMPはIPネットワークの標準機能なので、すべてのIP機器で利用できます。

動作の流れ

  1. エコー要求を送信:送信元が相手にICMPエコー要求パケットを送る
  2. エコー応答を待機:相手からのICMPエコー応答を待つ
  3. 往復時間を計測:パケットが往復するのにかかった時間を測定
  4. 結果を表示:応答時間や統計情報を表示

相手が応答すれば通信できている証拠です。
応答がなければ、どこかに問題があります。

基本的な使い方

Windowsでの起動方法

  1. スタートメニューで「cmd」と検索
  2. コマンドプロンプトを開く
  3. pingコマンドを入力

または、Windowsキー + Rを押して「cmd」と入力しても起動できます。

Linuxでの起動方法

ターミナルを開いてpingコマンドを入力します。
Ctrl + Alt + Tで起動できることが多いです。

基本構文

ping [オプション] 宛先

宛先にはIPアドレスまたはドメイン名を指定します。

具体例

Googleへのping

ping google.com

IPアドレスを指定

ping 8.8.8.8

自分のパソコンをテスト(ループバックアドレス)

ping 127.0.0.1

または

ping localhost

実行結果の見方

Windows版の実行例

C:\>ping google.com

google.com [142.250.207.46]に ping を送信しています 32 バイトのデータ:
142.250.207.46 からの応答: バイト数 =32 時間 =15ms TTL=116
142.250.207.46 からの応答: バイト数 =32 時間 =14ms TTL=116
142.250.207.46 からの応答: バイト数 =32 時間 =15ms TTL=116
142.250.207.46 からの応答: バイト数 =32 時間 =14ms TTL=116

142.250.207.46 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 14ms、最大 = 15ms、平均 = 14ms

各項目の意味

バイト数(bytes)
送信されたデータのサイズです。
デフォルトではWindowsは32バイト、Linuxは64バイトです。

時間(time)
応答時間をミリ秒(ms)で表示します。
低いほど高速で、高いほど遅延があります。

オンラインゲームでの目安

  • 50ms以下:非常に良好
  • 100ms以下:良好
  • 100ms以上:遅延を感じる可能性

TTL(Time To Live)
パケットの生存時間です。
ルーターを1つ経由するごとに1減ります。

0になるとパケットは破棄されます。
これは無限ループを防ぐための仕組みです。

from(応答元)
応答したIPアドレスが表示されます。
ドメイン名で指定した場合、IPアドレスに変換されます。

icmp_seq(シーケンス番号)
何回目の送信かを示す番号です。
番号が飛んでいる場合、その回は通信に失敗しています。

統計情報

送信・受信・損失

  • 送信:送ったパケット数
  • 受信:正常に返ってきたパケット数
  • 損失:失われたパケット数と割合

損失が0%なら完璧です。
損失があるとネットワークに問題がある可能性があります。

ラウンドトリップタイム

  • 最小:最も速かった応答時間
  • 最大:最も遅かった応答時間
  • 平均:平均の応答時間

値のばらつきが大きい場合、ネットワークが不安定な可能性があります。

Windowsの主要オプション

-t:連続してpingを送信

デフォルトでは4回だけ送信しますが、-tオプションで連続送信できます。

ping -t google.com

Ctrl + Cを押すまで永遠に送信し続けます。
長時間の安定性をテストする場合に便利です。

使用例
サーバーを再起動した際、起動完了を確認するのに使えます。
pingが通り始めたら、再起動が完了した証拠です。

-n:送信回数を指定

送信するパケット数を指定できます。

ping -n 10 google.com

10回だけpingを送信します。
デフォルトの4回より多く、または少なくテストしたい時に使います。

-l:パケットサイズを指定

送信するデータのサイズを変更できます。

ping -l 1000 google.com

1000バイトのパケットを送信します。
デフォルトは32バイトです。

使用目的
経路上でサイズ制限がないか確認できます。
大きなパケットで問題が出る場合、MTU(最大転送単位)に問題がある可能性があります。

最大サイズでのテスト

ping -l 65500 google.com

65500バイトはpingで扱える最大サイズです。

-f:フラグメント禁止

パケットの分割を禁止します。

ping -f -l 1500 google.com

-lオプションと組み合わせて使います。
MTU(最大転送単位)を調べるのに使用します。

パケットサイズを徐々に変えながら試して、エラーが出ないサイズを探します。
それがMTUの最大値です。

-i:TTL値を設定

パケットの生存時間を指定します。

ping -i 10 google.com

TTLを10に設定します。
10個のルーターを超えるとパケットが破棄されます。

-w:タイムアウト時間を指定

応答を待つ時間を設定します(ミリ秒単位)。

ping -w 1000 google.com

1000ミリ秒(1秒)待っても応答がなければタイムアウトとします。

-a:ホスト名を表示

IPアドレスをホスト名に逆引きして表示します。

ping -a 8.8.8.8

IPアドレスに対応するホスト名が表示されます。
名前解決の確認に便利です。

-4と-6:IPバージョンを指定

IPv4またはIPv6を明示的に指定します。

ping -4 google.com

IPv4での通信を強制します。

ping -6 google.com

IPv6での通信を強制します。

オプションの組み合わせ

複数のオプションを同時に使用できます。

ping -n 100 -l 1000 -w 2000 google.com

100回送信、パケットサイズ1000バイト、タイムアウト2秒で実行します。

Linuxの主要オプション

Linuxのpingはデフォルトで連続送信されます。
Ctrl + Cで停止するまで送信し続けます。

-c:送信回数を指定

ping -c 10 google.com

10回だけpingを送信して自動的に停止します。
Windowsの-nオプションに相当します。

-i:送信間隔を指定

ping -i 2 google.com

2秒間隔でpingを送信します。
デフォルトは1秒です。

ネットワークへの負荷を減らしたい時に使います。

-s:パケットサイズを指定

ping -s 1000 google.com

1000バイトのデータを送信します。
Windowsの-lオプションに相当します。

-W:タイムアウト時間を指定

ping -W 2 google.com

2秒待っても応答がなければタイムアウトとします。

-t:TTL値を設定

ping -t 10 google.com

TTLを10に設定します。
Windowsの-iオプションに相当します。

注意
-tで指定するのは消費する上限のTTLです。
実行結果に表示されるTTLは、消費後の残りのTTLです。

-f:高速送信(フラッド)

sudo ping -f google.com

パケットを高速で連続送信します。
ネットワーク負荷テストに使用しますが、攻撃とみなされる可能性があります。

注意
root権限が必要です。
ネットワーク管理者の許可なく使用してはいけません。

-b:ブロードキャストping

ping -b 192.168.1.255

サブネット全体にpingを送信します。
ネットワーク上のアクティブなホストを発見できます。

-q:簡易表示モード

ping -q -c 10 google.com

途中経過を表示せず、最後に統計のみ表示します。
スクリプトで使用する際に便利です。

実用例とトラブルシューティング

インターネット接続の確認

まず、確実に応答するアドレスにpingを送ります。

Googleのパブリックドメイン

ping 8.8.8.8

CloudflareのDNS

ping 1.1.1.1

これらが応答すれば、インターネットには繋がっています。

自分のネットワーク環境の確認

自分のパソコンをテスト

ping 127.0.0.1

これが通らない場合、ネットワークアダプターに問題があります。

ルーターをテスト

ping 192.168.1.1

ルーターのIPアドレスは環境によって異なります。
一般的には192.168.1.1や192.168.0.1です。

ルーターにpingが通らない場合、ローカルネットワークに問題があります。

名前解決の確認

IPアドレスでpingが通る場合

ping 8.8.8.8
成功

ドメイン名でpingが通らない場合

ping google.com
失敗

この場合、DNS(名前解決)に問題があります。
IPアドレスには接続できるが、ドメイン名をIPアドレスに変換できていません。

サーバー再起動の監視

サーバーを再起動する際、起動完了を自動で確認できます。

ping -t サーバーのIPアドレス

最初は応答がありませんが、再起動が完了すると応答が返り始めます。
この間、他の作業をしていても構いません。

ネットワークの安定性テスト

長時間のpingでネットワークの安定性を確認できます。

ping -t google.com

途中でパケットロスが発生したり、応答時間が大きくばらつく場合、ネットワークが不安定です。

経路上の問題の切り分け

段階的にpingを実行して、どこで問題が起きているか特定します。

  1. 自分のパソコン(127.0.0.1)
  2. ルーター(192.168.1.1)
  3. 外部の信頼できるサーバー(8.8.8.8)
  4. 目的のサーバー

どこまでpingが通るかで、問題の場所を特定できます。

応答がない場合の原因

pingコマンドで応答がない場合、以下の原因が考えられます。

1. 相手が起動していない

相手のパソコンやサーバーの電源が入っていない可能性があります。
ネットワークに接続されていないかもしれません。

2. 自分がインターネットに接続されていない

自分のパソコンがネットワークに接続されていない可能性があります。
Wi-Fiが切れている、LANケーブルが抜けている等を確認してください。

3. ファイアウォールでブロックされている

ファイアウォールがICMPパケットをブロックしている可能性があります。
セキュリティ上の理由で、意図的にpingに応答しない設定のサーバーもあります。

多くの企業サーバーや一部のウェブサイトはpingに応答しません。
これは正常な動作です。

4. IPアドレスやドメイン名の間違い

入力したアドレスが間違っている可能性があります。
スペルミスや数字の間違いがないか確認してください。

5. 経路上のルーターに問題

途中のルーターやネットワーク機器に障害がある可能性があります。
プロバイダー側の問題かもしれません。

6. DNS(名前解決)の問題

ドメイン名が解決できていない可能性があります。
IPアドレスで試して成功すれば、DNSに問題があります。

エラーメッセージと対処法

Request timed out

相手から応答がありません。
上記の原因を確認してください。

対処法

  1. 自分のネットワーク接続を確認
  2. 相手が起動しているか確認
  3. ファイアウォール設定を確認

Destination host unreachable

宛先ホストに到達できません。
ネットワーク経路に問題があります。

対処法

  1. IPアドレスが正しいか確認
  2. ルーターの設定を確認
  3. ネットワークケーブルを確認

Unknown host

ホスト名を解決できません。
DNS(名前解決)に問題があります。

対処法

  1. ドメイン名のスペルを確認
  2. DNSサーバー設定を確認
  3. IPアドレスで直接試す

Network is unreachable

ネットワークに到達できません。
ローカルネットワークの設定に問題があります。

対処法

  1. ネットワークアダプターの状態確認
  2. IPアドレスの設定確認
  3. ルーターの電源を入れ直す

General failure

ネットワークアダプターに深刻な問題があります。

対処法

  1. ネットワークアダプターを無効化して再度有効化
  2. ドライバーを再インストール
  3. パソコンを再起動

PINGコマンドの注意点

ネットワークに負荷をかける

pingは短時間に多くのパケットを送信します。
ネットワークに負荷をかける行為です。

連続pingや大量のpingを実行する際は、ネットワーク管理者に連絡しましょう。

ログに記録される

ネットワーク管理者が監視しているログにpingの実行は記録されます。
無断で大量のpingを送信すると、攻撃とみなされる可能性があります。

Ping Flood攻撃

-fオプションなどで大量のpingを送信すると、攻撃とみなされます。
これはDoS攻撃の一種で、「Ping Flood攻撃」と呼ばれます。

ネットワーク管理者の許可なく実行してはいけません。

pingが通らない=障害ではない

セキュリティ上の理由で、pingに応答しないサーバーも多数存在します。
pingが通らなくても、サービスは正常に動作している場合があります。

ウェブサイトにアクセスできるが、pingは通らない、という状況は普通です。

応答時間は参考値

pingの応答時間は、実際のアプリケーションの速度と完全には一致しません。
あくまで目安として考えてください。

pingは小さなパケットを使用しますが、実際の通信では大きなデータを扱います。

代替コマンドと組み合わせ

traceroute(tracert)コマンド

経路上のすべてのルーターを表示します。
どこで問題が起きているか詳細に調べられます。

Windows

tracert google.com

Linux

traceroute google.com

nslookupコマンド

DNS(名前解決)を確認するコマンドです。
ドメイン名をIPアドレスに変換できるかテストします。

nslookup google.com

pathpingコマンド(Windows)

pingとtracertを組み合わせたコマンドです。
各経路でのパケットロスを調べられます。

pathping google.com

実行には数分かかりますが、詳細な情報が得られます。

mtrコマンド(Linux)

tracerouteとpingを組み合わせた高機能なコマンドです。
リアルタイムで経路情報を更新表示します。

mtr google.com

nmapコマンド

ポートスキャンツールです。
開いているポートを調べられます。

nmap google.com

pingよりも詳細なネットワーク診断ができます。

まとめ

PINGコマンドはネットワークトラブルシューティングの基本ツールです。

基本的な使い方

  • ping [宛先]:基本的なping送信
  • ping -t [宛先]:連続送信(Windows)
  • ping -c 10 [宛先]:10回送信(Linux)

主要なオプション

Windows

  • -t:連続送信
  • -n:回数指定
  • -l:パケットサイズ
  • -w:タイムアウト
  • -a:ホスト名表示

Linux

  • -c:回数指定
  • -i:送信間隔
  • -s:パケットサイズ
  • -W:タイムアウト
  • -t:TTL設定

確認すべきポイント

  1. 応答時間(低いほど良い)
  2. パケットロス(0%が理想)
  3. TTL値(経由したルーター数がわかる)

トラブルシューティングの手順

  1. 自分のパソコンをping(127.0.0.1)
  2. ルーターをping
  3. 外部の信頼できるサーバーをping(8.8.8.8)
  4. 目的のサーバーをping

どこまで通るかで問題の場所を特定できます。

注意事項

  • ネットワークに負荷をかけるので、連絡して使用
  • ログに記録される
  • pingが通らない=障害ではない
  • 大量送信は攻撃とみなされる可能性

pingコマンドは単純ですが、非常に強力なツールです。
適切に使用すれば、ネットワーク問題の90%は診断できます。

コメント

タイトルとURLをコピーしました