「サーバーに繋がらない!」そんなとき最初に使うのがpingとtracerouteです。この2つのコマンドで通信障害の原因を素早く特定できます。
ping:疎通確認の基本
pingはICMPエコーリクエストを送って応答を確認するコマンドです。「相手が生きているか」「遅延はどれくらいか」を確認できます。
# 基本的な疎通確認
$ ping 8.8.8.8
$ ping google.com
# 回数を指定(-c)
$ ping -c 4 8.8.8.8
PING 8.8.8.8: 56 bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=118 time=5.23 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=118 time=5.11 ms
# 結果の読み方
# time= : 往復の遅延時間(RTT)。国内サーバーなら1〜10ms程度が正常
# ttl= : 残りホップ数。0になるとパケットが破棄される
# インターバルを指定(デフォルト1秒)
$ ping -c 10 -i 0.5 8.8.8.8 # 0.5秒間隔で10回
# パケットサイズを指定
$ ping -s 1400 8.8.8.8 # 大きいパケットでMTU問題を確認pingで確認できること・できないこと
| 状態 | 意味 |
|---|---|
| 応答あり・遅延小 | 正常 |
| 応答あり・遅延大 | ネットワーク混雑 or 経路問題 |
| 応答なし(タイムアウト) | 宛先がダウン、または経路上でICMPがブロックされている |
| Destination Host Unreachable | ルーティング問題(経路が見つからない) |
traceroute:経路を追跡する
traceroute(Linuxではtracepathも使える)は宛先までのルーターを一つずつ表示します。どこで遅延・障害が起きているかを特定できます。
# traceroute のインストール
$ sudo apt install traceroute # Ubuntu/Debian
$ sudo dnf install traceroute # RHEL/CentOS
# 基本的な使い方
$ traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max
1 192.168.1.1 (192.168.1.1) 1.234 ms ← デフォルトゲートウェイ
2 10.0.0.1 (10.0.0.1) 5.678 ms ← プロバイダのルーター
3 * * * ← ICMPをブロックしているルーター
4 8.8.8.8 (8.8.8.8) 12.345 ms ← 目的地
# * * * はICMPをブロックしているルーター(障害ではない場合も多い)
# UDPの代わりにICMPを使う(ファイアウォールを回避しやすい)
$ traceroute -I 8.8.8.8
# tracepath(インストール不要)
$ tracepath 8.8.8.8
# mtr:pingとtracerouteを組み合わせたリアルタイム表示
$ sudo apt install mtr
$ mtr 8.8.8.8まとめ
pingで疎通確認。応答時間(RTT)と応答の有無でネットワーク状態を判断- pingが通らなくてもICMPがブロックされているだけの場合もある
tracerouteでパケットの経路を追跡。遅延や障害の発生箇所を特定できるmtrはpingとtracerouteを組み合わせた強力なツール。障害調査に最適
📋 Phase 3 ネットワーク基礎チートシートで全コマンドをまとめて確認できます。



コメント