pingコマンドの使い方|基本からトラブル対処までコマンド

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxコマンド > pingコマンドの使い方|基本からトラブル対処までコマンド
「サーバーにつながらない」「ネットワークが通っているか確認したい」
こうしたトラブルの初動で最初に使うのが、pingコマンドです。

この記事では、pingコマンドの基本的な使い方からオプション指定、結果の読み方、そして「pingが通らない」ときのトラブル対処まで、実務で必要な知識をまとめて解説します。
「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

pingコマンドとは?ネットワーク疎通確認の基本

pingは、指定したホストにICMP(Internet Control Message Protocol)パケットを送信し、相手から応答が返ってくるかどうかを確認するコマンドです。

ネットワークの疎通確認、つまり「自分のマシンから相手のマシンまでパケットが届くか」を調べる最も基本的な手段です。

Windowsのpingはデフォルトで4回パケットを送って終了しますが、Linuxのpingはユーザーが停止するまで送り続けます。停止するには Ctrl + C を押してください。

pingコマンドの基本的な使い方

1. IPアドレスを指定して疎通確認する

最もシンプルな使い方です。相手のIPアドレスを指定して実行します。

$ 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.523 ms 64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.341 ms 64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.298 ms ^C --- 192.168.1.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 0.298/0.387/0.523/0.097 ms

応答が返ってきていれば、ネットワークは正常に疎通しています。

2. ホスト名を指定して疎通確認する

IPアドレスの代わりにホスト名やドメイン名でも指定できます。この場合、DNS名前解決が正しく動作しているかも同時に確認できます。

$ ping webserver01 PING webserver01 (192.168.1.10) 56(84) bytes of data. 64 bytes from webserver01 (192.168.1.10): icmp_seq=1 ttl=64 time=0.185 ms

ホスト名で応答があれば、ネットワークもDNSも正常です。ホスト名で失敗するがIPアドレスで成功する場合は、DNS設定に問題があります。

3. 回数を指定して実行する(-cオプション)

-c オプションで送信するパケット数を指定できます。スクリプトで使う場合や、決まった回数だけ確認したい場合に便利です。

$ ping -c 5 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.384 ms 64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.275 ms 64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.312 ms 64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=0.290 ms 64 bytes from 192.168.1.1: icmp_seq=5 ttl=64 time=0.268 ms --- 192.168.1.1 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4005ms rtt min/avg/max/mdev = 0.268/0.305/0.384/0.046 ms

5回送信したら自動的に終了します。シェルスクリプトでは ping -c 3 程度を使うのが定番です。

4. 送信間隔を指定する(-iオプション)

デフォルトでは1秒間隔でパケットを送信しますが、-i オプションで間隔を変更できます。

# 0.2秒間隔で送信する(root権限が必要) $ sudo ping -i 0.2 -c 10 192.168.1.1 # 5秒間隔で送信する(長時間の死活監視に使える) $ ping -i 5 192.168.1.1

※ 1秒未満の間隔を指定するにはroot権限が必要です。

5. パケットサイズを指定する(-sオプション)

-s オプションでICMPパケットのデータサイズを指定できます。デフォルトは56バイト(ICMPヘッダ8バイトを加えて64バイト)です。

# 1000バイトのパケットを送信する $ ping -s 1000 -c 3 192.168.1.1 PING 192.168.1.1 (192.168.1.1) 1000(1028) bytes of data. 1008 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.512 ms

MTU(Maximum Transmission Unit)の問題を調査するときに役立ちます。

ping結果の読み方

6. 応答行の見方

pingの応答行には重要な情報が含まれています。

64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.523 ms

64 bytes:受信したパケットのサイズ
icmp_seq=1:パケットの連番(抜けている番号があればパケットロスが発生している)
ttl=64:Time To Live(パケットが通過できるルーター数の上限、経由するたびに1ずつ減る)
time=0.523 ms:往復にかかった時間(RTT: Round Trip Time)

7. 統計情報の見方

Ctrl + C で停止した後(または -c で指定した回数が終了した後)に統計情報が表示されます。

--- 192.168.1.1 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4005ms rtt min/avg/max/mdev = 0.268/0.305/0.384/0.046 ms

5 packets transmitted:送信したパケット数
5 received:受信したパケット数
0% packet loss:パケットロス率(0%が正常、数%でも出ていたらネットワークに問題あり)
rtt min/avg/max/mdev:応答時間の最小値/平均値/最大値/標準偏差

標準偏差(mdev)は「ばらつき」を表します。この値が大きい場合、ネットワークが不安定な可能性があります。

実務で使えるping活用テクニック

8. タイムアウト時間を指定する(-Wオプション)

-W オプションで応答待ちのタイムアウト秒数を指定できます。スクリプトで素早く判定したいときに使います。

# 1秒以内に応答がなければタイムアウト $ ping -c 1 -W 1 192.168.1.100

シェルスクリプトでの死活監視では、終了コードを使って判定するのが定番です。

# 疎通確認のシェルスクリプト例 if ping -c 1 -W 2 192.168.1.1 > /dev/null 2>&1; then echo "サーバーは稼働中" else echo "サーバーに到達できません" fi

9. ping結果をログに残す

長時間の監視でログを残したい場合は、リダイレクトとタイムスタンプを組み合わせます。

# タイムスタンプ付きでログに保存する $ ping 192.168.1.1 | while read line; do echo "$(date '+%Y-%m-%d %H:%M:%S') $line"; done > ping_log.txt

10. IPv6で疎通確認する

IPv6アドレスに対してpingを実行するには、ping -6 または ping6 コマンドを使います。

# IPv6で疎通確認 $ ping -6 -c 3 ::1 PING ::1(::1) 56 data bytes 64 bytes from ::1: icmp_seq=1 ttl=64 time=0.025 ms # ping6コマンドでも同じ $ ping6 -c 3 fe80::1%eth0

pingが通らない時のトラブルシュート

「Destination Host Unreachable」の対処法

このメッセージは、指定したホストに到達するための経路が見つからない場合に表示されます。

・同じネットワーク内のホスト宛 → 相手がダウンしているか、IPアドレスが間違っている
・異なるネットワーク宛 → デフォルトゲートウェイの設定を確認する

# デフォルトゲートウェイを確認する $ ip route show default default via 192.168.1.1 dev eth0 # ネットワークインターフェースの状態を確認する $ ip addr show

「Request timed out」(応答なし)の対処法

パケットを送信したが応答が返ってこない状態です。

・相手のホストがダウンしている
・途中のネットワーク機器(ルーター・スイッチ)に障害がある
・ファイアウォールでICMPがブロックされている

まず自分自身(localhost)へのpingを試して、自マシンのネットワークスタックが正常か確認しましょう。

# 自分自身への疎通確認 $ ping -c 3 127.0.0.1 # デフォルトゲートウェイへの疎通確認 $ ping -c 3 192.168.1.1

localhost → ゲートウェイ → 相手ホスト の順に確認していくことで、どこで通信が途切れているか特定できます。

pingは通るのにSSH/HTTPがつながらない場合

pingが通るということは、ネットワーク層(L3)までは正常です。SSH(ポート22)やHTTP(ポート80)がつながらない場合は、アプリケーション層の問題です。

・対象のサービス(sshd、httpd)が起動しているか確認する
・ファイアウォールで対象ポートが許可されているか確認する

# ポートの到達性を確認する(pingの代わりに) $ ss -tlnp | grep :22 $ curl -I http://192.168.1.10

【重要】pingに応答しないホストがある(ICMP制限)

近年では、セキュリティやネットワーク負荷の観点から、ICMPパケットへの応答を無効にしているホストやネットワーク機器が増えています。

pingが通らないからといって、必ずしもホストがダウンしているわけではありません。

AWS EC2やクラウド環境では、セキュリティグループでICMPを明示的に許可しないとpingが通らないのが一般的です。事前に対象ホストがICMP応答を許可しているか確認してください。

本記事のまとめ

やりたいこと コマンド
IPアドレスに疎通確認する ping 192.168.1.1
回数を指定して実行する ping -c 5 192.168.1.1
送信間隔を変更する ping -i 0.2 192.168.1.1
パケットサイズを指定する ping -s 1000 192.168.1.1
タイムアウトを指定する ping -c 1 -W 1 192.168.1.1
IPv6で疎通確認する ping -6 -c 3 ::1
デフォルトゲートウェイを確認する ip route show default

関連記事

この記事と関連性の高い記事をまとめました。あわせて読むことで理解が深まります。

tracerouteコマンドでネットワーク経路を調査する方法|出力の見方とトラブル対処
LinuxのDNS設定方法|resolv.confが元に戻る原因とnmcliの手順

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。