【Ping】Linuxコマンド_ホスト間の通信・接続を確認

Pingコマンドはネットワークが正常に通信ができているかを調べたり、特定のホストが起動しているかを確認するために使用します。
Ping通信が送られた相手ホストはネットワークが正常に動作している際にメッセージを返信します。




Pingコマンドの使い方(Linux)

以下では、GoogleDNSサーバーへPingを実行した例となります。DNSサーバーのアドレスは「8.8.8.8」となります。

$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=37 time=15.1 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=37 time=16.3 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=37 time=18.1 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=37 time=20.6 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=37 time=17.1 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=37 time=16.2 ms
^C
--- 8.8.8.8 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 14ms
rtt min/avg/max/mdev = 15.126/17.219/20.554/1.744 ms
$

LinuxコマンドではPingコマンドを実行すると、キーボードの「Ctrl」+「C」を押すまでは定期的にPingを送信し続けます。
上記のようにPingコマンドを実行し、返事が帰ってくれば、相手ホストとの接続が確率されており、通信の正常性を確認できます。

また、Pingコマンド終了時には、事項結果として送信パケット数、パケット損失(loss)が表示されるため詳細な情報もここで判断することができます。
Pingコマンドを実行しても相手ホストからの返事がない場合以下のような表示になります。結果も100%パケットロスとなります。

$ ping 5.5.5.5
PING 5.5.5.5 (5.5.5.5) 56(84) bytes of data.
^C
--- 5.5.5.5 ping statistics ---
43 packets transmitted, 0 received, 100% packet loss, time 47ms
$

Pingはホスト名指定でも実行できる

Pingコマンドでは、対象ホストのIPアドレスだけではなく、「ホスト名」を使用しコマンドを実行することができます。

以下ではgoogle.com宛にPingを実行した例となります。

$ ping google.com
PING google.com (216.58.199.238) 56(84) bytes of data.
64 bytes from 216.58.199.238 (216.58.199.238): icmp_seq=1 ttl=37 time=14.9 ms
64 bytes from 216.58.199.238 (216.58.199.238): icmp_seq=2 ttl=37 time=16.7 ms
64 bytes from 216.58.199.238 (216.58.199.238): icmp_seq=3 ttl=37 time=16.5 ms
64 bytes from 216.58.199.238 (216.58.199.238): icmp_seq=4 ttl=37 time=14.6 ms
64 bytes from 216.58.199.238 (216.58.199.238): icmp_seq=5 ttl=37 time=17.2 ms
64 bytes from 216.58.199.238 (216.58.199.238): icmp_seq=6 ttl=37 time=21.2 ms
^C
--- google.com ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 13ms
rtt min/avg/max/mdev = 14.576/16.831/21.240/2.188 ms
$

上記のようにドメイン名でPingを実行すると、そのドメイン名から対象のIPアドレスに変換して接続確認を行います。




Ping通信ができない原因

Pingコマンドを実行しても、該当のホストから応答がない場合は、相手のホストと正しく接続されていないということとなります。

接続性がない主な原因としては以下が考えられます。

  • 物理接続ができておらずリンクが上がっていない
  • IPアドレスが正しく設定されていない
  • ルーティング設定の問題
  • vlan設定ミス

通信がうまくいかない場合、まずは「物理」接続を確認しましょう。意外と多いミスがあります。

物理確認をしても問題がない場合あは「ip addr」コマンド、もしくは「ifconfig」コマンドでIPアドレスの確認、ルータ間のvlan・ルーティングの確認をしましょう。

Pingオプション

LinuxのPingオプションは以下となります。

$ ping -help
Usage: ping [-aAbBdDfhLnOqrRUvV64] [-c count] [-i interval] [-I interface]
            [-m mark] [-M pmtudisc_option] [-l preload] [-p pattern] [-Q tos]
            [-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp_option]
            [-w deadline] [-W timeout] [hop1 ...] destination
Usage: ping -6 [-aAbBdDfhLnOqrRUvV] [-c count] [-i interval] [-I interface]
             [-l preload] [-m mark] [-M pmtudisc_option]
             [-N nodeinfo_option] [-p pattern] [-Q tclass] [-s packetsize]
             [-S sndbuf] [-t ttl] [-T timestamp_option] [-w deadline]
             [-W timeout] destination
$

主なオプションとしては「-c」オプションや「-i」、「-I」オプションとなります。

  • 「-c」count:count回数を指定しその回数分だけのメッセージを送信する
  • 「-i」interval:Ping実行間隔を設定する(秒)
  • 「-I」LinuxサーバーのPing対象のインターフェースを指定する

以上がLinuxOSにおけるPingとなります。

最新情報をチェックしよう!