【UNIXコマンド】pingとオプションの使い方

UNIXコマンド「ping」とそのオプションの使い方についてまとめました。

【はじめに】pingコマンドとは

pingコマンドは、ネットワーク上にあるパソコンやルーターに対して信号(パケット)を送り、正しく届いて返答が行われるかを確認するための機能です。
(pingテスト、ping試験などと言われたりもします)

これを使うことで、ネットワークトラブル時に物理的に原因があるのかどうかがわかります。

【pingコマンド】オプション

pingコマンドは通常「ping + 宛先IPアドレス」で実行しますが、この後にオプションの値を変えてやることで、ping試験の設定を変更できます。
以下のようにオプションを追加することで、設定を変更してping試験することができます。

ping[ -t][ -a][ -n 試行回数][ -l パケットサイズ][ -f][ -i TTL][ -v TOS][ -r ルータ個数][ -s ルータ個数][[ -j ゲートウェイリスト]|[ -k ゲートウェイリスト]][ -w タイムアウト時間] 確認したい対象のIPアドレス、もしくはホスト名
オプション 説明
-L マルチキャストのループ制限を実行
-R tracerouteのように途中で経過するルータの情報も復路も含めて取得できます。(最大9個)
【ping -r】tracerouteのように通過ルートを確認(戻りも)
-d パケットのSO_DEBUGオプションを指定
-f Flood pingモードを指定
-n 出力はIPアドレスのみ
-q 途中経過を非表示)
-r ルーティングテーブルを無視し、指定ホストに直接パケットを転送(同一の物理ネットワーク上に目的のホストがない場合はエラーを出力)
-v 詳細モード(通常は無視される他のICMPパケットも表示)
-c パケット送受信の回数(試行回数)を指定
-i 送信パケットの間隔時間(デフォルトは1秒。-fオプションと同時に指定できない
-w コマンドの起動時間[秒]を指定
-p パケットのパディング(埋め合わせ)データのパターンを指定(例:「ff」はすべてのデータを「1」で埋める)
-s パケットのデータ部サイズの指定(初期設定では56バイト)
-t パケットのTTLを指定された値に設定(値を指定しないとユーザーが中断するまで繰り返し実行)
-I 指定されたインターフェイス(IPアドレス or ネットワークカード名)で実行

【利用例】ping試験

例えば以下のようにpingを実行すると次のようなメッセージが帰ってきます。

ping google.co.jp

google.co.jp [2404:6800:4004:81a::2003]に ping を送信しています 32 バイトのデータ:
2404:6800:4004:81a::2003 からの応答: 時間 =85ms
2404:6800:4004:81a::2003 からの応答: 時間 =80ms
2404:6800:4004:81a::2003 からの応答: 時間 =84ms
2404:6800:4004:81a::2003 からの応答: 時間 =100ms

2404:6800:4004:81a::2003 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 80ms、最大 = 100ms、平均 = 87ms
用語 解説
TTL(Time To Live) IPパケットにおける「生存時間」
時間[ms] パケットを送信してから受信するまでにかかった時間

ping試験の結果、パケットを4回送信、4回受信し、失敗は0%でm通信が成功ネしており、google.co.jpまでのネットワークが物理的に正常動作していることになり、「自身のホスト、対象ホスト、及びその間になるネットワーク機器の設定、稼働状態」に問題ないことが判断できます。
逆にいうと、pingコマンドでエラーが出れば、そのいずれかに問題があることがわかり、問題を切り分けることができます。
ネットワーク障害が発生した際に、自身のホストに近い順にネットワーク機器のIPアドレスを指定してping試験を実施していくことで、どのネットワーク機器に問題があるのか特定することができます。

【ping疎通試験】ネットワーク障害・エラーの原因を調べる
ping疎通試験でネットワーク障害・エラーの原因を調べるする方法についてまとめました。
【Linux超入門】システムの基礎とよく使うコマンドなど徹底解説
Linuxシステムの基礎とよく使うコマンドなどについて入門者向けに解説します。

コメント