【Linux】ネットワークの接続確認をする:ping

Linux

どーも!marusukeです!

ネットワークが接続できているかの確認を行うためのコマンドpingについて説明します!

pingコマンドでできること

ping [オプション] <ホスト名またはIPアドレス>

pingコマンドは、ネットワークの疎通確認(接続確認)を行うためのコマンドです
ICMP(Internet Control Message Protocol)を使用して、指定したホストに対してエコーリクエストを送信し、応答(エコーレスポンス)が返ってくるかどうかを確認します

主な用途

  • ネットワークの接続性を確認する
  • 対象ホストまでの応答時間(遅延: RTT)を測定する
  • パケットロスを確認する
  • ホスト名をIPアドレスに解決できるか確認する(DNSの動作確認)

エコーリクエストとエコーレスポンスとは

エコーリクエスト: 通信先ホストへICMPリクエストパケットを送信することです

エコーレスポンス: エコーリクエストに応答するためにICMPパケットを送信することです

ここでは詳しい説明は省略しますが、pingで利用されるICMPでのリクエストとレスポンスのことです

pingコマンドの使用例

# 1. ホスト名で疎通確認を行う(control + C を押して停止します)
ping www.google.com
# 出力例:
PING www.google.com (142.250.196.100) 56(84) bytes of data.
64 bytes from 142.250.196.100: icmp_seq=1 ttl=117 time=16.2 ms
64 bytes from 142.250.196.100: icmp_seq=2 ttl=117 time=15.8 ms
64 bytes from 142.250.196.100: icmp_seq=3 ttl=117 time=15.7 ms
^C
--- www.google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 15.704/15.907/16.212/0.217 ms


# 2. IPアドレスで疎通確認を行う(control + C を押して停止します)
ping 192.168.1.1
# 出力例:
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.342 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.315 ms
^C
--- 192.168.1.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.315/0.328/0.342/0.014 ms


# 3. 特定の回数だけパケットを送信する(例: 5回)
ping -c 5 www.example.com
# 出力例:
PING www.example.com (93.184.216.34) 56(84) bytes of data.
64 bytes from 93.184.216.34: icmp_seq=1 ttl=56 time=90.1 ms
64 bytes from 93.184.216.34: icmp_seq=2 ttl=56 time=89.9 ms
64 bytes from 93.184.216.34: icmp_seq=3 ttl=56 time=89.7 ms
64 bytes from 93.184.216.34: icmp_seq=4 ttl=56 time=89.5 ms
64 bytes from 93.184.216.34: icmp_seq=5 ttl=56 time=89.6 ms

--- www.example.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4004ms
rtt min/avg/max/mdev = 89.525/89.775/90.144/0.218 ms


# 4. パケット送信間隔を短くする(0.2秒ごとに送信)
ping -i 0.2 www.example.com


# 5. パケットサイズを指定して送信する(例: 128バイト)
ping -s 128 www.example.com


# 6. IPv6を使用して疎通確認を行う
ping6 www.google.com
# または
ping -6 www.google.com

pingコマンドのオプション

オプション説明
-c <回数>パケットを指定した回数だけ送信します
-i <間隔>パケット送信間隔を秒単位で指定します(デフォルトは1秒)
-s <サイズ>送信するパケットのサイズを指定します(デフォルトは56バイト)
-W <タイムアウト>応答を待つタイムアウト時間をミリ秒単位で指定します
-4IPv4を強制的に使用します
-6IPv6を強制的に使用します(ping6と同等)
-t <TTL値>パケットのTTL(Time To Live)値を指定します
-q統計情報のみを簡潔に表示します
-v詳細情報を表示します(デバッグ用)

pingコマンドの仕組み

  1. エコーリクエストの送信
    pingコマンドは、ICMPプロトコルのエコーリクエストを指定したホストに送信します
  2. エコーレスポンスの受信
    ホストがリクエストを受信すると、エコーレスポンスを返します。この応答を受け取ることで、ネットワークの疎通を確認します
  3. 応答時間の計測
    リクエストを送信してからレスポンスを受信するまでの往復時間(RTT: Round Trip Time)を計測します
  4. パケットの統計情報の表示
    送信されたパケット数、受信したパケット数、パケットロス率、RTT(最小、平均、最大値)を表示します

注意点

  • 権限が必要な場合がある
    一部のディストリビューションでは、pingコマンドの操作に特権が必要な場合があります。この場合、sudoを使用してください。 例:sudo ping www.google.com
  • ICMPブロックに注意
    一部のホストやネットワークは、セキュリティのためICMPパケットをブロックしている場合があります。この場合、pingコマンドは失敗します
  • IPv6の利用
    IPv6環境では、ping6またはping -6を使用してください

以上です!

ここまで読んでいただきありがとうございました!

コメント

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