Menu
Coddy logo textTech

拒否またはタイムアウト

Coddyの「ターミナルで学ぶネットワーク」コースのレッスン 18/47。

接続に失敗すると、いくつかの特定の形のいずれかになり、それぞれ異なる原因を示します。curlは、コマンドが残す数値である終了コードによって、どの形なのかを報告します。これは$?として読み取れます。

curl -s http://127.0.0.1:9999/
echo $?

覚えておく価値があるのは次の3つです。

  • 0:成功
  • 7:接続拒否。マシンは応答したものの、そこで待ち受けているものはない
  • 28:タイムアウト。何も応答しなかった

7は速く、28は遅い。この違いが診断になります。拒否されたということは、マシンには到達して明確に拒否されたということなので、アドレスは正しく、サービスが実行されていません。タイムアウトはリクエストが消えてしまったことを意味し、通常はファイアウォールによって破棄されたか、アドレスが間違っています。

challenge icon

チャレンジ

難しい

両方の失敗を発生させ、コードを確認します。

  1. http://127.0.0.1:9999/ にページを要求します。そこでは何も待ち受けていないため、refused= に続けて終了コードを表示します
  2. --max-time 2 を指定して、トラフィックを飲み込むアドレスである http://10.255.255.1/ に対して同じことを行い、timeout= とその終了コードを表示します

期待される出力:

refused=7
timeout=28

$? には直前に実行したコマンドの終了コードが保持されるため、すぐに読み取ってください。

自分で試してみよう

ターミナル
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ターミナルで学ぶネットワークのすべてのレッスン

自分で練習してみよう: Terminalプレイグラウンド