pingコマンドの使い方と結果の見方 — 通らない時の原因と切り分け
「サーバーにつながらない」と言われたら、まず打つのが ping です。ただ、pingが通らない=相手が止まっている、とは限りませんし、pingが通る=サービスが使える、とも限りません。この記事では、pingの仕組みと結果の見方、よく使うオプション、エラー別の原因、そして切り分けの順番を、Windowsの実際の表示を使って整理します。
pingとは — 「届くか」と「往復の時間」を調べる
pingは、相手にICMP(アイシーエムピー)のエコー要求を送り、エコー応答が返ってくるかを調べるコマンドです。返ってくれば「ネットワーク上で相手まで届いている」と分かり、往復にかかった時間も表示されます。Windows・Mac・Linuxのどれにも標準で入っています。
ICMPはIPと同じネットワーク層の仕組みで、ポート番号を使いません。そのため、pingで分かるのは「IPアドレスまで届くか」までです。Webやリモートデスクトップなど、特定のポートのサービスが使えるかは別に確かめる必要があります(後述)。
基本の使い方と結果の見方
Windowsならコマンドプロンプト(またはPowerShell)で、相手のIPアドレスか名前を付けて実行します。
ping 8.8.8.8
ping www.example.com
名前を指定すると、先に名前解決(DNS)をしてからpingを送ります。Windowsでは、何も付けないと4回送って止まります。
8.8.8.8 に ping を送信しています 32 バイトのデータ:
8.8.8.8 からの応答: バイト数 =32 時間 =20ms TTL=116
8.8.8.8 からの応答: バイト数 =32 時間 =19ms TTL=116
8.8.8.8 からの応答: バイト数 =32 時間 =20ms TTL=116
8.8.8.8 からの応答: バイト数 =32 時間 =21ms TTL=116
8.8.8.8 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 19ms、最大 = 21ms、平均 = 20ms
| 表示 | 意味 | 見るポイント |
|---|---|---|
| 時間 =20ms | 往復にかかった時間(応答時間) | 同じLAN内なら1ms前後、国内のインターネットなら数十ms程度が目安。急に大きくなったら混雑や経路の変化を疑う |
| TTL=116 | 相手から届いたパケットの残り寿命 | ルーターを1台越えるごとに1減る。Windowsは128、Linuxは64から始まることが多いので、おおよその距離やOSの見当がつく |
| 損失 = 0 (0% の損失) | 返ってこなかった割合 | ときどき失われるなら、回線の品質やWi-Fiの電波を疑う |
PowerShellには同じ働きの Test-Connection -ComputerName 8.8.8.8 -Count 4 もあります。
よく使うオプション(WindowsとLinuxの対応)
WindowsとLinux(Macもほぼ同じ)で、同じ働きでも文字が違うので注意してください。
| やりたいこと | Windows | Linux |
|---|---|---|
| 止めるまで打ち続ける | -t(Ctrl+Cで止める) | 何も付けない(Ctrl+Cで止める) |
| 回数を決める | -n 回数 | -c 回数 |
| 送るデータの大きさ | -l バイト数(既定32) | -s バイト数(既定56) |
| 分割禁止(DF)を付ける | -f | -M do |
| 応答を待つ時間 | -w ミリ秒 | -W 秒 |
| 送るときのTTL | -i TTL | -t TTL |
| IPv4/IPv6を指定 | -4/-6 | -4/-6 |
| IPアドレスから名前を引く | -a | (なし。名前は既定で表示される) |
Windowsの -t で打ち続けている間に Ctrl+Break を押すと、止めずにそこまでの統計を表示できます。機器の再起動中に ping -t を打っておき、応答が戻った瞬間を確かめる使い方は現場の定番です。
エラー表示別の原因
| 表示(Windows) | 意味 | 主な原因 |
|---|---|---|
| 要求がタイムアウトしました。 | 決まった時間内に応答が返らない | 相手が止まっている、途中で遮断されている、相手のファイアウォールがpingを受け付けない |
| 宛先ホストに到達できません。 | 途中の機器(または自分)が「その先へ届けられない」と返した | 同じLANの相手ならMACアドレスを調べられない(電源オフ・IPの間違い)、ルーターにその宛先への経路がない |
| ping 要求ではホスト ○○ が見つかりませんでした。 | 名前からIPアドレスを引けなかった | 名前の打ち間違い、DNSサーバーに届かない、DNSに登録がない |
| 転送中に TTL が期限切れになりました。 | 途中のルーターでTTLが0になった | 経路がループしている(同じ所を回っている)、-i で小さいTTLを指定した |
| パケットの断片化が必要ですが、DF が設定されています。 | 分割禁止のパケットが、途中の経路に対して大きすぎた | MTUを調べているとき(後述)。VPNなどで通れる大きさが小さくなっている |
| 一般エラーです。 | 自分のPCの中で送信に失敗した | ネットワークアダプターの無効化、セキュリティソフト、IPアドレスの設定不備 |
注意したいのは、「宛先ホストに到達できません」や「TTL が期限切れ」も、統計では「受信」に数えられることです。統計の「損失 = 0%」だけを見て安心せず、応答の行が「相手のIPアドレス からの応答: バイト数 = …」になっているかを確認してください。
つながらない時の切り分けの順番
近い所から順にpingを打つと、どこで止まっているかが分かります。
| 順番 | 打つ先 | 失敗したら疑うこと |
|---|---|---|
| 1 | 127.0.0.1(自分自身) | 自分のPCのTCP/IPが正しく動いていない |
| 2 | 自分のIPアドレス(ipconfig で確認) | ネットワークアダプターの設定や状態 |
| 3 | デフォルトゲートウェイ(ルーター) | LANケーブル・Wi-Fi・スイッチなど、同じネットワーク内 |
| 4 | インターネット上のIPアドレス(例 8.8.8.8) | ルーターから先、回線やプロバイダー |
| 5 | 名前(例 www.example.com) | 4は通るのに5だけ失敗なら、名前解決(DNS) |
社内のサーバーが相手なら、4・5の代わりに「サーバーのIPアドレス」→「サーバーの名前」の順に打ちます。どこまで届いているかは、経路上のルーターを順に表示する tracert(Linuxは traceroute)でも確認できます。
pingが通るのにつながらない/pingが通らないのにつながる
pingは「IPアドレスまで届くか」だけを見るので、次の食い違いがよく起きます。
| 状況 | 理由 | 次に確認すること |
|---|---|---|
| pingは通るのに、Webやリモートデスクトップにつながらない | サービスが止まっている、ファイアウォールでそのポートだけ止まっている | Test-NetConnection -ComputerName 相手 -Port 443 でポートまで届くか(ポートの確認方法) |
| pingは通らないのに、Webなどは使える | 相手やファイアウォールがpingだけを止めている | 異常ではないことが多い。Windowsは初期設定でpingに応答しないことがある |
WindowsのPCやサーバーにpingを通したいときは、相手側のファイアウォールで「ファイルとプリンターの共有(エコー要求 - ICMPv4 受信)」の規則を有効にします。PowerShellなら管理者として Enable-NetFirewallRule -Name FPS-ICMP4-ERQ-In です。外部に公開しているサーバーでは、必要な範囲に絞ってください。
pingでMTU(通れる最大サイズ)を調べる
VPN越しだと「小さいデータは届くのに、大きいファイルだけ止まる」ことがあります。分割禁止(DF)を付けたpingで、通れる大きさを調べられます。
:: 1472バイト+ヘッダー28バイト=1500バイトで試す
ping -f -l 1472 8.8.8.8
:: 「パケットの断片化が必要ですが、DF が設定されています。」と出たら、数字を小さくして再実行
ping -f -l 1400 8.8.8.8
応答が返る最大の数字に28(IPヘッダー20バイト+ICMPヘッダー8バイト)を足したものが、その経路で通せるMTUです。一般的なイーサネットでは1500で、1472が通れば1500ということになります。
よくある質問
Q. pingの応答時間はどれくらいなら正常?
A. 回線や距離によるので一概には言えませんが、同じLAN内なら1ms前後、国内のインターネット上なら数十ms程度が目安です。普段の値を知っておき、そこから急に増えたかどうかで判断します。
Q. 「要求がタイムアウトしました」なら、相手は止まっている?
A. 止まっているとは限りません。相手のファイアウォールがpingを受け付けていないだけのこともあります。ポートまで届くか(Test-NetConnection)や、ほかの方法でも確認してください。
Q. 名前でpingすると失敗し、IPアドレスなら通るのは?
A. 名前解決(DNS)の問題です。nslookup 名前 で引けるか、PCが参照しているDNSサーバー(ipconfig /all で確認)が正しいかを見ます。確認の手順は 名前解決できない時の切り分け にまとめています。
🔗 関連:ポート番号とは(一覧と確認方法) / リモートデスクトップに接続できない時の切り分け / IPアドレスとMACアドレスの違い / DNSと名前解決 / グローバルIP確認 / 記事一覧