pingが嘘をつくとき
Coddyの「ターミナルで学ぶネットワーク」コースのレッスン 17/47。
Ping は、誰もが最初に試すものですが、答えられる質問は多くの人が考えるよりも限定的です。それはマシンが稼働していることを示します。実際に必要としているものが動作しているかどうかについては、何も示しません。
サーバーはすべての ping に完璧に応答しながら、その上で動作している Web サーバーがクラッシュしていることがあります。マシンは稼働中でも、サービスは停止中です。Ping はサービスと通信することがないため、この違いを見分けられません。
逆方向にも誤解を招きます。多くのホストはICMP を完全に無視するよう設定されているため、トラフィックを問題なく処理しているマシンに対しても、ping は 100 パーセントの損失を報告します。ping の失敗は、何かに問題がある証拠ではありません。
つまり、ping は診断の階段の最初の一歩であって、診断のすべてではありません。二歩目は、ポート自体に問い合わせることです。
チャレンジ
中級ping では確認できない、まさにその状況を示します。応答するマシンですが、ポートでは何もサービスを提供していません。
127.0.0.1 に対して、サーバーをまったく起動せずに実行します。
- 1 回 ping を実行し、
host upと出力する nc -zでポート 9999 を確認し、port closedと出力する
期待される出力:
host up
port closedマシンが稼働していることは明らかです。まさにそこがポイントです。稼働していることと、サービスを提供していることは同じではありません。
自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ターミナルで学ぶネットワークのすべてのレッスン
自分で練習してみよう: Terminalプレイグラウンド