「ネットワークが繋がらない」と言われたとき、pingを打って応答があれば安心、なければお手上げ——未経験のうちはこの状態になりやすいです。結論から言うと、pingは「相手が生きているか」しか教えてくれません。経路のどこで止まっているのか、名前解決の問題なのか、ポートが開いていないのかを切り分けるには、ping以外のコマンドが必要になります。この記事では、現役インフラエンジニアが実際の切り分けで使う基本コマンド10個を、使う場面ごとに整理して解説します。
pingだけでは切り分けが終わらない理由
pingが返ってこないとき、原因はいくつも考えられます。相手サーバーが落ちている、経路上のどこかで通信が止められている、そもそも名前解決ができていない、ポートが閉じている——pingの応答の有無だけでは、この中のどれなのか判断できません。
現場での切り分けは「どの階層で止まっているか」を1つずつ確認していく作業です。そのために、経路・名前解決・ポートという3つの観点それぞれに専用のコマンドがあります。以下、場面ごとに見ていきます。
場面1: 自分のネットワーク状態を確認する
まず疑うべきは自分側の設定です。
| コマンド | 役割 | 使用例 |
|---|---|---|
| ip a | 自分のIPアドレスとインターフェースの状態を確認 | ip a |
| arp -a | 同じネットワーク内の機器のMACアドレス対応を確認 | arp -a |
ip aでIPアドレスが割り当てられていない、あるいはインターフェースがdown状態になっていれば、そもそも通信できる状態にありません。arp -aは同一LAN内の機器と実際に通信できているかを見る手がかりになり、社内ネットワークのトラブルでよく使う場面があります。
場面2: 経路のどこで止まっているかを確認する
自分側に問題がなければ、次は経路を疑います。
| コマンド | 役割 | 使用例 |
|---|---|---|
| traceroute | 相手までの経路を1ホップずつ表示 | traceroute example.com |
| mtr | tracerouteとpingを組み合わせて経路を継続監視 | mtr example.com |
tracerouteを打つと、途中の中継機器(ルーター)を1つずつ経由している様子が表示され、どのホップで応答が止まっているかを見れば、自社ネットワークか途中の回線かおおよその切り分けができます。mtrは同じ経路確認をリアルタイムで継続表示できるため、断続的に不安定な回線の調査に向いています。
場面3: 名前解決を確認する
IPアドレスへの到達は問題なくても、URLで繋がらないなら名前解決(DNS)を疑います。
nslookup example.com— ドメイン名に対応するIPアドレスを簡易的に確認するdig example.com— 問い合わせ内容や応答したDNSサーバー、TTLまで詳しく確認する
nslookupは結果がシンプルで初動確認に向いており、digは応答の詳細まで見えるため、DNSサーバーの切り替えやTTLが絡む調査で役立ちます。DNSの仕組み自体を理解しておくと、この2つの結果の意味が読み取りやすくなります。名前解決の流れを詳しく知りたい方はDNSとは?名前解決の仕組みも参考にしてください。
場面4: 通信・ポートの状態を確認する
経路と名前解決が問題なくても、相手側のポートが閉じていれば通信できません。
| コマンド | 役割 | 使用例 |
|---|---|---|
| ss | 自分のマシンで開いている通信・待受ポートを確認 | ss -tuln |
| curl -I | Webサーバーの応答をヘッダーだけ確認 | curl -I https://example.com |
| telnet | 指定したポートに到達できるか確認 | telnet example.com 443 |
| nc | ポートへの到達確認や簡易的な通信テスト | nc -zv example.com 443 |
ssは自分のマシン側の状態、telnetやncは相手側のポートへ実際に到達できるかを確認するためのコマンドです。「pingは通るがWebサイトが開けない」という相談は、たいていポートかアプリケーション側の問題で、この場面のコマンドで初めて原因に近づけます。現役でインフラの現場にいる立場から言うと、telnetは古いコマンドですが、ポート到達確認だけの用途では今も現場で普通に使われています。SSHの接続確認に関わる基礎はSSHとは?でも解説しているので、あわせて読んでおくと理解がつながります。
InfraDojoで学ぶ
InfraDojoでは、ブラウザ上の演習環境でこの10個のコマンドを実際に打って確認できます。切り分けの流れを手で覚えるところまで含めて学べるので、覚えたつもりで終わらせずに実感として身につけられます。ネットワークの基礎から順番に進めたい方は、まずネットワーク学習ロードマップから始めてみてください。
よくある質問
Q. pingが通らなければ、まず何を確認すればいいですか?
まずip aで自分のIPアドレスとインターフェースの状態を確認してください。自分側に問題がなければtracerouteで経路のどこまで届いているかを確認し、その後に名前解決やポートの状態を順番に見ていくのが基本の流れです。
Q. telnetは古いコマンドと聞きましたが、覚える必要はありますか?
リモートログインの用途では非推奨ですが、ポートへの到達確認という用途では現場で今も使われています。ncで代替できる場面も多いので、どちらか一方だけでも使えれば十分です。
Q. 10個すべてを覚えるまでネットワークの勉強を先に進めない方がいいですか?
いいえ、順番にこだわる必要はありません。まずは「経路・名前解決・ポート」という3つの切り分け観点があることだけ理解しておき、コマンドの細かい使い方は実際にトラブルに遭遇したときに調べながら覚えるくらいで十分です。ネットワーク全体の学習の進め方はネットワークの勉強は何から?で解説しています。