pingで接続を確認しよう
ストーリー
「先輩、"ネットワークが繋がらない"って言われたとき、最初に何をすればいいですか?」
「まずは ping だね。相手のコンピュータが応答するか確認するんだ」
「ping ですか。Step 2 の演習でも使いましたね」
「そう。今回はもう少し深く、ping の仕組みと読み方を学ぼう」
ping とは
一言で言うと
相手のコンピュータにネットワーク接続できるか確認するコマンド
ping は ICMP(Internet Control Message Protocol)という プロトコルを使って、相手にパケットを送り、応答が返ってくるかを確認します。
例え
「もしもーし!聞こえますか?」 → ICMPエコーリクエスト
「はい、聞こえてます!」 → ICMPエコーリプライ
基本的な使い方
bash
ping -c 4 対象-c 4: 4回だけパケットを送る(省略するとLinux/Macでは停止するまで送り続ける)- 対象: IPアドレスまたはドメイン名
実行例
bash
ping -c 4 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=117 time=3.45 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=3.52 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=3.48 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=117 time=3.50 ms
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 3.450/3.487/3.520/0.025 ms
出力の読み方
各行の意味
64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=3.45 ms
│ │ │ │ │
│ │ │ │ └── RTT(応答時間)
│ │ │ └─────────── TTL(生存時間)
│ │ └────────────────────── シーケンス番号
│ └─────────────────────────────────── 応答元のIP
└────────────────────────────────────────────── 受信データサイズ
RTT(Round Trip Time / 往復時間)
パケットが往復するのにかかった時間。
| RTT | 評価 |
|---|---|
| 1ms 以下 | 非常に高速(ローカルネットワーク) |
| 1〜10ms | 高速(近いサーバー) |
| 10〜100ms | 普通(国内サーバー) |
| 100〜300ms | やや遅い(海外サーバー) |
| 300ms 以上 | 遅い(遠い海外、衛星通信など) |
TTL(Time To Live)
パケットがネットワーク上を通過できる最大ルーター数。ルーターを通過するたびに1ずつ減り、0になるとパケットは破棄されます。
TTL=64 → Linuxサーバーからの応答の可能性
TTL=128 → Windowsサーバーからの応答の可能性
TTL=255 → ネットワーク機器からの応答の可能性
統計情報
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
│ │ │
│ │ └── パケットロス率
│ └────────────── 受信パケット数
└──────────────────────────────────── 送信パケット数
rtt min/avg/max/mdev = 3.450/3.487/3.520/0.025 ms
│ │ │ │
│ │ │ └── 標準偏差(ばらつき)
│ │ └────── 最大値
│ └─────────── 平均値
└──────────────── 最小値
- packet loss 0%: パケットがすべて届いている(正常)
- packet loss 100%: 1つも届いていない(接続できない)
ping で分かること
| 結果 | 意味 |
|---|---|
| 応答あり + 0% loss | 正常に接続できている |
| 応答あり + 一部 loss | 通信品質が悪い(回線が不安定) |
| 応答なし(タイムアウト) | 接続できない or ファイアウォールでブロック |
| ドメイン名で失敗、IPで成功 | DNS の問題 |
ping が失敗する場合
Request timeout
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
原因:
- 相手が存在しない or 電源オフ
- ファイアウォールがICMPをブロック
- ネットワーク経路に問題がある
Name resolution failed
ping: unknown host example.invalid
原因:
- ドメイン名が存在しない
- DNSサーバーに接続できない
注意
一部のサーバー(特にクラウドサービス)はセキュリティのため ping をブロックしていることがあります。ping が失敗しても、Webサイト自体は正常に動いている場合があります。
まとめ
| ポイント | 内容 |
|---|---|
| ping | ネットワーク接続を確認するコマンド |
| RTT | パケットの往復時間(ms単位) |
| TTL | パケットの生存時間 |
| packet loss | パケットの損失率(0%が理想) |
チェックリスト
- ping コマンドの基本的な使い方が分かる
- RTT(往復時間)の意味を理解した
- packet loss の意味を理解した
- ping が失敗する原因を3つ言える
次のステップへ
ping の使い方が分かりましたね。
次のセクションでは、traceroute コマンドを学びます。データがどの経路を通って相手に届くのか、追跡してみましょう。
推定読了時間: 25分