pingコマンド - 相手と相通できるかどうかを確認

pingコマンドとは

pingは通信相手との疎通を確認するためのコマンドです。

通信相手のIPアドレスかドメイン名を指定して実行し、ネットワーク経路に異常がないかどうかを調べることができます。

よく使うオプションは以下の通りです。

オプション内容
-a名前解決を行い、結果にドメイン名を表示
-i TTLエコー要求パケットの有効期限(TTL)を指定
-l サイズエコー要求パケットのサイズをバイト単位で指定
-n 回数コマンドを1回実行したときに送信するエコー要求パケットの回数を指定
-tCtrl+Cを押すまで、エコー要求パケットを続けて送信

ping実行

pingコマンドを実行してみます。

まずは同一セグメント内にあるWindowsパソコンのIPアドレスを指定します。

[コンソール]

1
ping 10.200.241.47

[実行結果]

1
2
3
4
5
6
7
8
9
10
10.200.241.47 に ping を送信しています 32 バイトのデータ:
10.200.241.47 からの応答: バイト数 =32 時間 <1ms TTL=128
10.200.241.47 からの応答: バイト数 =32 時間 <1ms TTL=128
10.200.241.47 からの応答: バイト数 =32 時間 <1ms TTL=128
10.200.241.47 からの応答: バイト数 =32 時間 <1ms TTL=128

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

問題なく疎通できました。

TTLと表示されているのはエコー応答パケットのもので、Windowsの場合128が表示されます。


次にルータを1つはさんだ先にあるLinuxサーバのIPアドレスに対してpingコマンドを実行してみます。

[コンソール]

1
ping 172.40.8.46

[実行結果]

1
2
3
4
5
6
7
8
9
10
172.40.8.46 に ping を送信しています 32 バイトのデータ:
172.40.8.46 からの応答: バイト数 =32 時間 =5ms TTL=63
172.40.8.46 からの応答: バイト数 =32 時間 =20ms TTL=63
172.40.8.46 からの応答: バイト数 =32 時間 =7ms TTL=63
172.40.8.46 からの応答: バイト数 =32 時間 <1ms TTL=63

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

これも問題なく疎通できました。

macOSやLinuxの場合、TTLは64が表示されるのですが経由したルータの数が引かれて63となっています。

つまり、TTLの数字をみることで通信相手のOSと経由しているルーターの数がわかることになります。


参考までに疎通ができない場合は、下記のような結果が表示されます。

[到達できないケース]

1
2
3
4
5
6
7
8
192.168.0.1 に ping を送信しています 32 バイトのデータ:
192.168.0.26 からの応答: 宛先ホストに到達できません。
192.168.0.26 からの応答: 宛先ホストに到達できません。
192.168.0.26 からの応答: 宛先ホストに到達できません。
192.168.0.26 からの応答: 宛先ホストに到達できません。

192.168.0.1 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、