どーも!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 <タイムアウト> | 応答を待つタイムアウト時間をミリ秒単位で指定します |
-4 | IPv4を強制的に使用します |
-6 | IPv6を強制的に使用します(ping6 と同等) |
-t <TTL値> | パケットのTTL(Time To Live)値を指定します |
-q | 統計情報のみを簡潔に表示します |
-v | 詳細情報を表示します(デバッグ用) |
pingコマンドの仕組み
- エコーリクエストの送信
ping
コマンドは、ICMPプロトコルのエコーリクエストを指定したホストに送信します - エコーレスポンスの受信
ホストがリクエストを受信すると、エコーレスポンスを返します。この応答を受け取ることで、ネットワークの疎通を確認します - 応答時間の計測
リクエストを送信してからレスポンスを受信するまでの往復時間(RTT: Round Trip Time)を計測します - パケットの統計情報の表示
送信されたパケット数、受信したパケット数、パケットロス率、RTT(最小、平均、最大値)を表示します
注意点
- 権限が必要な場合がある
一部のディストリビューションでは、ping
コマンドの操作に特権が必要な場合があります。この場合、sudo
を使用してください。 例:sudo ping www.google.com
- ICMPブロックに注意
一部のホストやネットワークは、セキュリティのためICMPパケットをブロックしている場合があります。この場合、ping
コマンドは失敗します - IPv6の利用
IPv6環境では、ping6
またはping -6
を使用してください
以上です!
ここまで読んでいただきありがとうございました!
コメント