
疎通しないときの切り分け手順|ping・traceroute・digの基本
「さっきまで見られてたのに、急につながらなくなった」「メンテもしてないのに、サイトが開かないって連絡が来た」——そんな一言で呼ばれて、慌ててサーバーにログインしようとする。でも、そのログインすら通らないと、頭が真っ白になりますよね。
そういうとき、つい「サーバーが落ちたのかも」と最悪を想像して、あちこち一気に確認したくなります。でも「つながらない」の原因は、サーバー本体とは限りません。名前解決(ドメイン名をIPアドレスに変換する仕組み)がこけているのか、途中の経路で止まっているのか、そもそも相手の回線の問題なのか——場所によって、次にやることはまったく変わります。
この記事では、「つながらない」を手元(自分)に近い側から、相手のサーバーへと順番にたどっていく切り分けを、ping・traceroute・dig という3つの基本コマンドを使って一緒に整理します。全部を覚えなくて大丈夫です。まずは「どこで止まっているのか」を分けるところから、落ち着いて見ていきましょう。
結論:「つながらない」と言われたら、①名前解決を確かめる(digでドメインがIPに引けているか)②相手まで届くかを確かめる(pingでIP宛に応答が返るか)③どこで止まっているかを見る(tracerouteで経路の途中を確認)④サービスの口(ポート)が開いているかを見る——の順で、手元に近い側から一方向に進めます。まずは「名前で引けないのか、IPでも届かないのか」を分けるところから。
コマンドは Linux/一般的な環境を前提にしています。OSやツールの版、ネットワーク機器の設定(ICMPを止めている等)で挙動が変わります。ここを出発点に、本番へ反映する前に自分の環境と公式情報で確認してください。
まず「どこで止まっているか」を分ける

いきなり「サーバーが生きているか」を見にいく前に、一段引いて「どこで止まっているのか」を分けます。ここを飛ばすと、「サーバーが落ちたと思って大騒ぎしたら、実はDNSの設定変更が原因だった」といった遠回りをしがちだからです。
順番の考え方はシンプルです。手元(自分の端末)にいちばん近いところから、相手のサーバーへ向かって、一方向に確かめていく。上流が白(問題なし)だと分かったら、その先へ進む。これだけです。
- 名前解決:
example.comのようなドメイン名を、IPアドレスに変換できているか(dig)。 - 到達性:そのIPアドレス宛に、パケットが届いて応答が返るか(
ping)。 - 経路:届かないなら、途中のどこまでは行けて、どこで止まっているか(
traceroute)。 - ポート:ホストには届くのに、目的のサービス(Web・DBなど)だけ反応しないか。
まずは「名前で引けないのか、IPでも届かないのか」の一本目の分かれ道を決めるだけで、見るべき場所がぐっと狭まります。
① 名前解決を確かめる(dig)
「つながらない」で意外と多いのが、サーバーは元気なのに名前解決だけがこけているケースです。ドメインの有効期限切れ、DNSレコードの設定変更、参照しているDNSサーバーの不調——原因はサーバー本体の外にあります。
dig(ダグ)は、ドメイン名からIPアドレスを引く様子を確認するコマンドです。
dig example.com
見るのは、出力の中の ANSWER SECTION です。ここに A(IPv4アドレス)や AAAA(IPv6アドレス)が返ってきていれば、名前解決はできています。
;; ANSWER SECTION:
example.com. 300 IN A 93.184.216.34
逆に、ANSWER SECTION が空だったり、status: NXDOMAIN(そんな名前は存在しない)と出ていたら、名前解決の側に問題があります。ここが原因なら、ping や traceroute をいくら叩いても直りません。DNSレコード・ドメインの有効期限・参照先DNSのほうへ調べる先を切り替えます。
自分の端末の設定を疑うなら、参照先を変えて引いてみる
自分のPCやサーバーが見ているDNSがおかしいのか、それともドメインの設定そのものがおかしいのかを分けたいときは、参照するDNSサーバーを指定して引き比べます。
# 公開DNS(例)を指定して引いてみる
dig example.com @8.8.8.8
自分の普段の環境では引けないのに、別のDNS経由なら引ける——なら、原因は「自分が参照しているDNS側」に絞れます。ここまで分かると、相手を責めずに、自分の設定から確認できます。
② 相手まで届くかを確かめる(ping)
名前解決ができている(またはIPアドレスが分かっている)なら、次はそのIP宛にパケットが届いて応答が返るかを見ます。使うのは、いちばん基本の ping(ピング)です。
ping example.com
応答が返ると、こんな行が続きます。
64 bytes from 93.184.216.34: icmp_seq=1 ttl=56 time=12.3 ms
ここで見るのは、次の2つです。
- 応答が返ってくるか:
time=…msの行が続いていれば、相手までパケットが届き、返ってきています。到達性はある、ということです。 - 応答時間(
time)とパケットロス:timeが極端に大きい、あるいは100% packet loss(全部届いていない)なら、相手までの経路や相手側に問題があります。時々しか返らない(ロスが混じる)なら、経路のどこかが不安定なサインです。
ping が通らない=サーバーが落ちている、とは限らない
ここは誤解しやすいところなので、一拍おきます。ping は ICMP という種類の通信を使いますが、セキュリティ上の理由で ICMP をわざと止めているサーバーやネットワークは珍しくありません。その場合、サーバーは元気に動いていても ping には応答しません。
だから、ping が通らなくても「落ちた」と即断しないこと。Webサーバーなら、後述のポート確認(②の次)で「80/443番が反応するか」を見るほうが確実なこともあります。ping は「通れば到達性あり」と言える便利な道具ですが、「通らない=死亡」ではない、と覚えておくと落ち着けます。
③ どこで止まっているかを見る(traceroute)
ping で応答が返らない、あるいは時々しか返らない。そんなときに、手元から相手まで、どこまで行けて、どこで止まっているかを見るのが traceroute(トレースルート)です。
traceroute example.com
出力は、経由するネットワーク機器(ルーター)が1行ずつ、手元に近い順に並びます。
1 192.168.1.1 1.2 ms
2 10.0.0.1 5.4 ms
3 * * *
4 * * *
見るのは、**どこまで応答があって、どこから *(応答なし)になるか**です。
- **途中まで進んで、ある地点から先がずっと
***:そのあたりで止まっている可能性があります。自分の環境のすぐ近く(最初の数ホップ)で止まっているなら手元側、ずっと先で止まっているなら相手側や途中の経路が疑わしい、と当たりがつきます。 - 最後まで到達している:経路自体は通っています。つながらないなら、原因は経路ではなく、相手のサービス(ポート)やアプリ側にあるかもしれません。
ただし traceroute も、途中の機器が応答を返さない設定だと * になることがあり、** * イコール障害とは限りません**。「どのあたりの層で変化が起きているか」を大づかみにするための道具、と捉えると深追いせずに済みます。分からない項目に粘りすぎず、「手元側か・相手側か・途中か」の当たりがつけば十分です。
④ ホストは生きているのに「そのサービスだけ」つながらないとき

ping は通る(ホストは生きている)、経路も最後まで届いている。なのに「Webサイトが開かない」「DBに接続できない」。こういうときは、ホストではなくサービスの口(ポート)を見ます。
Webなら80番・443番、といったように、サービスごとに使うポートが決まっています。そのポートが開いているか、反応するかを確かめると、「ホストは生きているが、Webのプロセスだけ落ちている/ファイアウォールで塞がれている」といった一段細かい切り分けができます。ポートの確認には curl(Webの応答を直接見る)や、nc・telnet でポートに接続してみる、といった方法があります。
ここまで来れば、「つながらない」は「名前は引ける・ホストには届く・でも443番だけ反応しない」というように、具体的な場所まで絞れています。あとは、そのサービス(Webサーバーのプロセス、ファイアウォール設定)を見にいけば大丈夫です。
具体例:3つの「つながらない」のたどり方
順番に当てはめると、こんなふうにたどれます。
- 「昨日ドメインを更新してから開かない」:まず
dig→ANSWER SECTIONが空だった。名前解決がこけている。DNSレコードの設定を確認したら、更新時にAレコードが変わっていた。 - 「特定の拠点からだけつながらない」:
pingは自分の環境からは通る → その拠点からtraceroute→ 途中の同じ機器で*に。経路上のどこかが原因だった。 - 「サーバーには入れるのにサイトだけ開かない」:
pingOK・経路OK → ポートを確認 → 443番が無反応。Webサーバーのプロセスが落ちていた。再起動で復旧。
大事なのは、手元に近い側(名前解決)から順番に確かめることです。入口を決めてから進めば、どこを見ればいいかは自然と狭まります。
影響:見る順番が決まっていると、何が変わるか
- 「つながらない」が「名前解決がこけている」「経路の途中で止まっている」「ポートが塞がっている」のどれか、まで絞れて、次に何をすればいいかがはっきりする
pingが通らないだけで「サーバーが落ちた」と早合点する遠回りを避けられる- 「ここまでは正常でした」と切り分けの結果を言えるので、第一報や相手への連絡がしやすい
- 手順を残しておけば、自分が不在のときも、誰かが同じ順番で確認できる
逆に、順番を決めずに毎回勘で探すと、同じ「つながらない」でも、対応する人や日によって時間が大きく変わってしまいます。ネットワークは目に見えない分、地図があるかどうかで落ち着きがまるで違います。
明日やること:正常なときの姿を1回見ておく
いきなり全部は要りません。明日できる、いちばん小さな一歩はこれです。
- いつも使っている自分のサーバーやサイトに対して、平常時に
dig・ping・tracerouteを一度ずつ叩いてみる。 digのANSWER SECTIONに何が返るか、pingの応答時間がだいたい何ミリ秒か、tracerouteが何ホップで着くか——「ふつうの状態」を目に馴染ませておく。- そのときの出力を、運用メモに1回貼っておく。障害時に「今と平常時で何が違うか」を比べる基準になる。
- 余力があれば、
pingが ICMP を止められていて通らないホストがないか(=ポート確認のほうが確実な相手か)も、平常時に確かめておく。
平常時の姿を知っておくと、異常のときに「どこがいつもと違うか」で気づけます。これが、切り分けをいちばん速くしてくれます。
疎通確認・切り分けチェックリスト
最低ライン(優先順位つき:これだけで回る) 1) 名前解決:dig <ドメイン> で ANSWER SECTION にIPが返るかを見る 2) 到達性:ping <IP または ドメイン> で応答が返るか・パケットロスがないかを見る(ICMPを止めている相手もいる点に注意) 3) 経路:届かないときは traceroute でどこまで行けて・どこで止まるかを見る
余力が出たら拡張
- ホストは生きているのにサービスだけつながらないときは、ポート(Webなら80/443)を
curlやncで確認する - 平常時の
dig/ping/tracerouteの出力を運用メモに残し、比較の基準にする
免除条件(省略可)
- 相手が ICMP を止めていて
pingが使えないと分かっている場合は、pingを飛ばしてポート確認へ進んでよい。
確認項目
- つながらないとき、まず
digで名前解決できているかを確かめている -
digのANSWER SECTIONにIPが返っているかを見ている -
dig @別のDNSで、自分の参照先DNSの問題かを切り分けられる -
pingの応答時間とパケットロスを見ている -
pingが通らなくても「サーバーが落ちた」と即断しないと分かっている - 届かないときは
tracerouteで止まっている場所の当たりをつけている -
*が必ずしも障害とは限らないと分かっている - ホストは生きているのにサービスだけ無反応なら、ポートを確認している
- 平常時の出力を、比較の基準として残している
全部に○が付かなくても大丈夫です。上の3つ(名前解決・到達性・経路)が押さえられていれば、何もないときよりずっと落ち着いてたどれます。
よければ、こちらも
疎通の切り分けは、障害対応全体の一部です。鳴った瞬間の段取りや、重さの切り分け、連絡の型もあわせて1枚にしておくと、当日とても楽になります。
- 「サイトが重い」の切り分け手順|どこが遅いかを順番に絞る:つながるけど遅い、のときの切り分けです。今日の「つながらない」と地続きの手順です。
- 障害対応runbookテンプレート|初動・切り分け・連絡・記録を1枚に:今日の疎通確認を、初動・連絡・記録とまとめて1枚にする型です。
- 障害の第一報テンプレート|誰に・何を・どの順で伝えるか:調査中でも出せる第一報の文面テンプレ。「ここまでは正常でした」を伝えるときに使えます。
「つながらない」は、目に見えない分いちばん心細い障害のひとつです。でも、手元に近い側から dig・ping・traceroute と順番にたどると決めておくだけで、あの真っ白になる時間は、ずいぶん短くなります。 今日は、いつものサーバーに平常時の3コマンドを一度叩いて、「ふつうの姿」を見ておくだけで十分です。それが、次に「つながらない」と言われたとき、あなたを迷子にさせない地図になります。
ほかの実務ヒントは記事一覧からどうぞ。保守運用の小さな備えを、メールでも少しずつお届けしています。