pingコマンドは、ICMPのエコー要求を送り、相手から応答が返るかと往復時間を確かめるコマンドです。Windowsは既定で4回・32バイトを送り、Linuxは-cで回数を決めないと止めるまで送り続けます。応答が無いときに最初に見るのは、表示されたメッセージの種類です。
この記事でわかること
- Windows・Linux・Cisco IOSで既定の回数・サイズ・待ち時間がどう違うか
- -i と -t のように、OSで意味が入れ替わるオプションの見分け方
- 時間・TTL・損失率など結果の各項目の読み方
- 応答が無いときのメッセージ別の原因と、次に打つコマンド
- DFビットを立てたpingで経路のMTUを探す手順
一次情報: Microsoft Learn「ping」(参照)/Linux man-pages「ping(8)」(参照)/Cisco「Understand Ping and Traceroute Commands」(参照)※2026年9月時点
pingやtracertで障害の場所を絞る作業は、監視・運用の現場で毎日のように出てきます。監視から構築側へ進む道筋を段階ごとにまとめたのが、次の記事です。
pingコマンドとは?届くかどうかと往復時間を測るコマンド
pingコマンドとは、相手にICMPのエコー要求を送り、エコー応答が返るまでの時間を表示するコマンドです。ICMPの仕様(RFC 792)では、エコー要求がタイプ8、エコー応答がタイプ0と決まっています。
ひと言でいえば「そこまで届いて、返ってこられるか」を見る道具です。Microsoftの資料でも、接続性・到達可能性・名前解決のトラブルシューティングに使う主要なコマンドと位置づけられています。
| 見えるもの | 見えないもの |
|---|---|
| 相手までIPで届き、戻ってこられるか | Webやメールなど、特定のポートが開いているか |
| 往復時間(ミリ秒)とそのばらつき | どのルーターを通ったか(tracertの役割) |
| 送った数に対して失われた割合 | 応答しない理由が「停止」か「ICMPの遮断」か |
| 応答パケットのTTL(経路の手がかり) | アプリケーションが正常に動いているか |
特に右下の2つは誤解が多いところです。pingが返らない=相手が止まっている、とは限らない。ファイアウォールでICMPを通さない設定は、サーバーでもクラウドでもよく見かけます。
逆に、pingが通ってもWebサイトが開けないことはあります。pingはICMPで、HTTPSはTCPの443番を使うので、通り道が別だからです。
OSごとに既定の動きが違う
同じpingでも、何もオプションを付けないときの動き方はOSで違います。ここを知らずに比べると、「Linuxだと終わらない」「Ciscoだと5発しか打たない」と戸惑います。
| 項目 | Windows | Linux(iputils) | Cisco IOS |
|---|---|---|---|
| 送る回数 | 4回 | 止めるまで続く | 5回 |
| データサイズ | 32バイト | 56バイト | 100バイト |
| 応答の待ち時間 | 4,000ミリ秒 | -W で秒単位に指定 | 2秒 |
| 止め方 | 自動で終わる | Ctrl+C | 自動で終わる |
出典は、WindowsがMicrosoft Learn「ping」、Linuxがman-pages「ping(8)」、Cisco IOSがシスコの拡張pingの解説です。LinuxはICMPヘッダー8バイトを足して、64バイトとして表示されます。
オプションなしで打ったときの既定の動き
- 回数
- 4回で自動終了
- サイズ
- 32バイト
- 待ち時間
- 4,000ミリ秒
- 送り続ける
- -t を付ける
- 回数
- 止めるまで続く(-cで指定)
- サイズ
- 56バイト(表示は64)
- 間隔
- 1秒
- 止め方
- Ctrl+C
- 回数
- 5回で自動終了
- サイズ
- 100バイト
- 待ち時間
- 2秒
- 細かい指定
- 引数なしのpingで拡張pingへ
図:同じpingでも、回数・サイズ・待ち時間はOSごとに違う
pingコマンドの書き方とよく使うオプション
基本の形は「ping 宛先」だけです。宛先はIPアドレスでもホスト名でも構いません。
ping 192.0.2.10
ping www.example.com
ここからは目的別に、WindowsとLinuxのオプションを並べます。Windowsは「-n」でも「/n」でも受け付けます。
| やりたいこと | Windows | Linux | 補足 |
|---|---|---|---|
| 回数を決める | -n 10 | -c 10 | Windowsの既定は4回 |
| 止めるまで送り続ける | -t | 何も付けない | Windowsは Ctrl+Break で途中集計 |
| データサイズを変える | -l 1472 | -s 1472 | Windowsの上限は65,500バイト |
| 分割を禁止する(DF) | -f | -M do | MTU調べに使う |
| TTLを指定する | -i 64 | -t 64 | 文字が入れ替わる点に注意 |
| 応答の待ち時間 | -w 1000(ミリ秒) | -W 1(秒) | 単位が違う |
| 送る間隔 | 指定なし | -i 0.5(秒) | 一般ユーザーは2ミリ秒未満にできない |
| IPv4/IPv6を指定 | -4/-6 | -4/-6 | 名前で指定するときに効く |
| IPから名前を引く | -a | 既定で表示 | Linuxは -n で数値のみ |
同じ文字で意味が変わる「-i」と「-t」
表の中でいちばん事故が起きやすいのが「-i」と「-t」です。Windowsの-iはTTL、Linuxの-iは送る間隔。「-t」も、Windowsでは送り続ける指定で、LinuxではTTLの指定になります。
WindowsのつもりでLinuxに「ping -t 10.0.0.1」と打つと、10.0.0.1がTTLの値として読まれ、意図どおりには動きません。OSをまたいで作業する日は、手を動かす前に一度ヘルプを出すと安全です。
ping /? (Windows)
ping -h (Linux)
Cisco IOSは「拡張ping」で細かく指定する
Cisco IOSのルーターでは、特権EXECモードで引数を付けずに「ping」と打つと、対話形式で項目を聞いてくる拡張pingになります。シスコの解説によると、既定値は次のとおりです。
| 項目 | 既定値 | よく変える場面 |
|---|---|---|
| Repeat count | 5 | 瞬断を見るときに増やす |
| Datagram size | 100 | MTUを確かめるとき |
| Timeout in seconds | 2 | 遠い拠点で待ち時間を延ばす |
| Source address or interface | 指定なし | LAN側から出したことにして戻り経路を試す |
| Set DF bit in IP header? | no | MTUを確かめるとき |
| Sweep range of sizes | n | サイズを変えながら一気に試す |
送信元を指定できるのが拡張pingの強みです。ルーターから普通にpingを打つと、出ていくインターフェースのIPが送信元になります。それが通っても、LAN側の端末から見た戻りの経路が正しいとは限りません。
pingの結果の見方|時間・TTL・損失率の読み方
pingの出力で見る場所は3つです。応答が返った行の「時間」と「TTL」、最後に出る統計の「損失」です。下はWindowsの日本語表示の出力例で、アドレスは説明用の値にしています。
192.0.2.10 に ping を送信しています 32 バイトのデータ:
192.0.2.10 からの応答: バイト数 =32 時間 =3ms TTL=61
192.0.2.10 からの応答: バイト数 =32 時間 =2ms TTL=61
192.0.2.10 からの応答: バイト数 =32 時間 =4ms TTL=61
192.0.2.10 からの応答: バイト数 =32 時間 =3ms TTL=61
192.0.2.10 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 2ms、最大 = 4ms、平均 = 3ms
| 表示 | 意味 | 見るポイント |
|---|---|---|
| バイト数 =32 | 応答のデータ部分の大きさ | 送ったサイズと同じか |
| 時間 =3ms | 往復にかかった時間 | 平常時の値と比べて増えていないか |
| TTL=61 | 応答が届いた時点の残り寿命 | 急に変わったら経路が変わった合図 |
| 損失 = 0 (0% の損失) | 返ってこなかった割合 | 1発でも落ちるなら回数を増やして再確認 |
| 最小・最大・平均 | 往復時間の統計 | 最大だけ跳ねるなら混雑や瞬断の疑い |
TTLから経路の長さを読む
TTLは、ルーターを1台通るたびに1ずつ減る値です。送り手が最初に付ける値はOSで決まっていて、Linuxの既定は64です(Linuxカーネル文書 ip-sysctl)。Windowsは128、ネットワーク機器は255を初期値にしているものが多くあります。
返ってきたTTLが61なら、初期値64から3減った、つまり3台ほど経由したと読めます。ただし初期値は設定で変えられるので、TTLの数字は「推定の手がかり」までにとどめてください。普段と比べて急に変わったときに、経路の切り替わりを疑う使い方が実務的です。
Linuxの出力とCisco IOSの記号
Linuxでは、応答1行が「64 bytes from 192.0.2.10: icmp_seq=1 ttl=61 time=3.12 ms」の形で出ます。最後に「4 packets transmitted, 4 received, 0% packet loss」と、往復時間の最小・平均・最大が続く形です。
Cisco IOSは1発ごとに記号を1文字で出します。「!!!!!」と並べば5発とも応答ありです。記号の意味は、シスコの解説で次のように定義されています。
| 記号 | 意味 |
|---|---|
| ! | 応答を受け取った |
| . | 応答を待つ間にタイムアウトした |
| U | 宛先到達不能(Destination Unreachable)を受け取った |
| Q | 送信元抑制(相手が混雑) |
| M | 分割できなかった(Could not fragment) |
| ? | 不明なパケット |
| & | パケットの寿命切れ |
「.!!!!」のように1発目だけ落ちる形は、構築の現場でよく見ます。最初の1発を送る間に、ルーターがARPで相手のMACアドレスを調べているのが典型的な理由です。2発目以降が揃って返るなら、慌てなくて大丈夫です。
pingが返ってこないときの切り分け|メッセージ別の原因
応答が無いときは、まず表示されたメッセージを読みます。メッセージの種類で、止まっている場所が自分・途中・相手のどこかをかなり絞れます。
| 表示(日本語/英語) | 起きていること | 次の一手 |
|---|---|---|
| 要求がタイムアウトしました。/Request timed out. | 応答が待ち時間内に戻らない | tracertで途中まで届くか見る |
| 宛先ホストに到達できません。/Destination host unreachable. | 経路が無い、または同じネットワーク内で相手のMACが引けない | 応答元のIPを見て、ipconfig・arp -a |
| 転送中に TTL が期限切れになりました。/TTL expired in transit. | 途中でTTLが0になった | tracertで同じIPが繰り返し出るか(ループ) |
| Ping 要求ではホスト ○○ が見つかりませんでした。 | 名前をIPに変換できない | IPで打ち直し、nslookupで確認 |
| 一般エラーです。/General failure. | 自分の端末から送り出せていない | NICの状態・VPN・セキュリティソフト |
| パケットの断片化が必要ですが、DF が設定されています。 | DFを立てたサイズが経路のMTUを超えた | サイズを下げて通る値を探す |
「宛先ホストに到達できません」は、誰が返してきたかで意味が変わります。応答元が自分のIPなら、自分の端末が相手を見つけられていません。応答元が途中のルーターなら、そのルーターが先の経路を持っていない状態です。
「IPで打つと通るのに、名前で打つと失敗する」ケースは、名前解決の問題です。Microsoftの資料も、この場合はhostsファイル・DNS・NetBIOSのどれで名前を引いているかを確かめるよう案内しています。
応答が無いときのメッセージは4つの場所に分かれる
- pingが返らない
- 自分の端末一般エラーです/応答元が自分の『宛先ホストに到達できません』→ ipconfig・arp -a
- 途中の経路応答元がルーターの『到達できません』/TTL期限切れ(ループ)/DFでの断片化エラー → tracert
- 相手または遮断要求がタイムアウトしました → 途中まで届くかをtracertで確認。ICMPを通さない設定も多い
- 名前解決ホストが見つかりませんでした/IPなら通る → nslookupでDNSを確認
図:メッセージの種類で、止まっている場所を自分・途中・相手・名前解決に分ける
近い順に打って、止まる場所を探す
メッセージだけで決め切れないときは、自分に近い相手から順にpingを打つのが近道です。どこで返らなくなるかで、見るべき場所が決まります。
- ping 127.0.0.1。自分のTCP/IPが動いているか。ここで失敗するなら端末の設定を疑う
- 自分のIPアドレス。NICにアドレスが付いているか。ipconfigで確かめた値を使う
- デフォルトゲートウェイ。同じネットワークの出口まで届くか。失敗ならケーブル・スイッチ・VLAN
- 外部のIPアドレス。社外やDNSサーバーまで届くか。失敗ならルーター・回線・ファイアウォール
- ホスト名。名前で届くか。IPで通って名前で失敗するならDNS
この順番で見ると、「全部おかしい」状態から「3番目で止まるので、ゲートウェイまでの区間」まで一気に狭まります。障害連絡を受けたとき、最初の5分でやることとして、覚えておいて損はありません。
MTUを調べる|DFビットを立てたpingで通るサイズを探す
VPNやトンネルを挟むと、大きいパケットだけ通らない現象が起きます。Webの一部だけ開かない、ファイル転送だけ止まる、といった症状です。このときは、分割禁止(DF)を立てたpingで、通る最大サイズを探します。
ping -f -l 1472 192.0.2.10 (Windows)
ping -M do -s 1472 192.0.2.10 (Linux)
指定するのはデータ部分のサイズです。IPv4では、IPヘッダー20バイトとICMPヘッダー8バイトが上に乗ります。
| 指定するデータサイズ | +ICMPヘッダー | +IPヘッダー | 経路MTU |
|---|---|---|---|
| 1472バイト | 8バイト | 20バイト | 1500バイト |
| 1464バイト | 8バイト | 20バイト | 1492バイト |
| 1400バイト | 8バイト | 20バイト | 1428バイト |
1472で「断片化が必要ですが、DF が設定されています」が出たら、値を下げて通る境目を探します。通った最大値に28を足した数が、その経路で通せるMTUです。1500より小さい値が出たら、途中にトンネルやPPPoEが挟まっている可能性が高いと見当がつきます。
DFを立てたpingで経路のMTUを求める
- 大きいパケットだけ通らない症状のときに使います。
- 11472バイト・DFありで打つWindowsは ping -f -l 1472、Linuxは ping -M do -s 1472
- 2断片化のエラーなら値を下げる通る値と通らない値の境目を探す
- 3通った最大値+28=経路MTUICMPヘッダー8バイト+IPヘッダー20バイト。1472なら1500
1500より小さい値なら、途中にトンネルやPPPoEが挟まっている可能性が高い。
図:通った最大のデータサイズに28を足すと、その経路のMTUになる(IPv4)
Cisco IOSなら、拡張pingで「Set DF bit in IP header?」をyesにし、「Sweep range of sizes」でサイズを変えながら一度に試せるので便利です。
現場で使うpingの組み合わせ
pingは単発で打つより、作業と組み合わせたときに本領を発揮します。構築・運用保守の現場でよく使うのは、次のような形です。
作業と組み合わせる使い方
- 切り替え作業中に -t を流しっぱなしにする。冗長化の切り替えやケーブルの差し替えで、何発落ちたかから瞬断の長さを見積もる
- 送信元を変えて打つ。Cisco IOSの拡張pingでLAN側のIPを送信元にし、戻りの経路まで確かめる
- 終了コードで判定する。Linuxのpingは応答が1つも無いと終了コード1を返すので、監視スクリプトの死活判定に使える
-tを流しながらの作業では、1秒ごとの応答が途切れた本数がそのまま目安になります。Linuxの既定の間隔は1秒です(man ping)。Windowsの-tもほぼ1秒ごとに送るので、「6発落ちた=6秒前後止まった」と読めます。
ただし、止めずに送り続けるpingや、Linuxの-f(フラッド)は相手に負荷をかけます。自社の管理範囲の外にあるサーバーへ向けて長時間打つのは避けてください。
よくある質問
pingは通るのにWebサイトが開けないのはなぜですか?
pingはICMPで届くかを見るだけで、Webが使うTCPの443番が通るかは見ていません。ICMPが通ってもファイアウォールでHTTPSが止まっていたり、Webサーバー自体が止まっていたりすれば開けません。ポートが待ち受けているかは、netstatなどの別のコマンドで確かめます。
pingを途中で止めるにはどうすればいいですか?
WindowsでもLinuxでも Ctrl+C で止まり、そこまでの統計が表示されます。Windowsで -t を付けて送り続けている場合は、Ctrl+Break を押すと止めずに途中の統計だけを表示できます。
pingの時間が何ミリ秒なら正常ですか?
決まった基準値はありません。同じ建物の中と遠い拠点では、平常時の値そのものが違うからです。平常時に同じ宛先へ打った値を控えておき、それと比べて増えていないか、最大値だけ跳ねていないかで判断するのが確実です。
pingが返らないとき、相手のサーバーは止まっていますか?
止まっているとは限りません。サーバーやクラウドのファイアウォールでICMPを通さない設定はよくあります。tracertで途中まで届いているか、相手のサービスのポートに接続できるかを合わせて確かめてから判断してください。
IPv6でpingするにはどうすればいいですか?
WindowsでもLinuxでも「-6」を付けると、IPv6で送ります。IPv6アドレスを直接書く場合は付けなくても動きます。ホスト名で指定したときに、IPv4とIPv6のどちらで送るかを固定したい場面で使うオプションです。
まとめ
- pingは、ICMPで相手まで届いて戻れるかと往復時間を見るコマンド
- 既定値はOSで違う。Windowsは4回、Linuxは止めるまで、Cisco IOSは5回
- -i と -t はWindowsとLinuxで意味が入れ替わる。OSをまたぐ日は先にヘルプを出す
- 応答が無いときはメッセージを読み、自分に近い相手から順に打って止まる場所を探す
- DFを立てたpingで、通る最大サイズに28を足せば経路のMTUがわかる
pingで「届かない」ことが分かったら、次は「どこで止まっているか」です。途中の経路を1台ずつ表示するtracertと組み合わせると、障害の場所をさらに狭められます。
これからネットワークエンジニアを目指す方は、学習と転職の順番を先に決めておくと遠回りが減ります。CCNAの取得から内定まで、未経験から進む道のりを5つの段階で整理した記事です。
免責事項
※本記事はMicrosoft・シスコシステムズの公式ドキュメント、Linuxのマニュアル、RFCなどの公開情報をもとに整理したものです。コマンドの表示や既定値は、OSのバージョンや機器の設定によって変わる場合があります。業務で使う機器では、所属先の手順とベンダーの最新資料をあわせてご確認ください。

