タイトル: ping コマンド
SEOタイトル: Linux ping コマンドの使い方:疎通確認・回数指定・タイムアウト・トラブルシュート
| この記事の要点 |
|
ping コマンドとは
ping は、指定したホストに ICMP Echo Request パケットを送り、Echo Reply が返ってくるかどうかでネットワークの疎通を確認するコマンドです。Linux / macOS / Windows すべてに標準搭載されており、トラブルシュートで最初に使うコマンドの一つです。応答時間(RTT: Round Trip Time)からネットワーク遅延の傾向もつかめます。
基本構文
ping [オプション] 宛先
シンプルな使用例
$ ping example.com
PING example.com (93.184.216.34) 56(84) bytes of data.
64 bytes from 93.184.216.34: icmp_seq=1 ttl=56 time=12.3 ms
64 bytes from 93.184.216.34: icmp_seq=2 ttl=56 time=12.1 ms
^C
--- example.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 12.123/12.234/12.345/0.111 msLinux ではデフォルトで連続実行されるため、Ctrl + C で停止します。Windows は既定で 4 回送信して自動終了します。
よく使うオプション
| オプション | 意味 |
|---|---|
-c <回数> | 送信回数を指定(例: -c 4) |
-i <秒> | 送信間隔(既定 1 秒) |
-W <秒> | 応答待ちタイムアウト |
-s <サイズ> | 送信データのバイト数(既定 56) |
-t | 送信パケットの TTL(経路長制限の検証に) |
-4 / -6 | IPv4 / IPv6 を明示 |
-q | 静かなモード(最後にサマリのみ表示) |
使用例
1. 回数を指定して実行
$ ping -c 4 192.168.1.1
2. 短い間隔で疎通の安定度を観察
# 0.2 秒間隔で 50 回(要 root の場合あり)
$ sudo ping -i 0.2 -c 50 8.8.8.8
3. 大きめのパケットで MTU 周りを試す
$ ping -c 4 -s 1472 -M do example.com-M do はフラグメント禁止。指定サイズで通れば MTU の余裕を確認できます。
結果の読み方
| 項目 | 意味 |
|---|---|
| icmp_seq | パケットの通し番号(欠番があればロスト) |
| ttl | 残り TTL。経路上のルータ数の目安 |
| time | RTT(ミリ秒)。遅延の目安 |
| packet loss | ロス率。0% が理想 |
| rtt min/avg/max/mdev | RTT の最小・平均・最大・標準偏差 |
典型的なトラブルシューティングの流れ
- 自分のデフォルトゲートウェイに ping → ローカルセグメントの正常性確認
- 外部 DNS(
8.8.8.8など)に ping → 上流ネットワークの正常性確認 - 名前で ping(例:
ping example.com) → 名前解決の正常性確認 - ロス率が高ければ
traceroute/mtrで経路を追跡
ping が通らないときの注意
- ICMP がファイアウォールでブロックされている場合がある(クラウドのセキュリティグループ既定値で多い)
- サーバが ICMP Echo に応答しない設定(
net.ipv4.icmp_echo_ignore_all = 1など)の場合がある - ping が通らなくても TCP の Web アクセス(HTTP/HTTPS)は問題なく成立することがある
- port 単位の疎通確認は ping ではなく
nc -zv host portやcurl -vを使う