失敗を読み解く
Coddyの「ターミナルで学ぶネットワーク」コースのレッスン 46/47。
コース全体を1つの方法にまとめましょう。何かが接続できないとき、原因は少数の候補に絞られ、それぞれに特徴的な兆候があります。
- 名前を解決できなかった。 接続する前に即座に失敗します。ルックアップで確認してください。
- 待ち受けているものがない。 すぐに拒否され、curl の終了コードは 7 です。
- トラフィックが破棄されている。 しばらく停止した後、終了コードは 28 になります。
- そのポートは TLS で通信していない。 終了コードは 35 です。
- 正常に接続できた。 次にステータスコードを読み取ります。4xx はあなたのリクエストに関する問題で、5xx は相手側の問題です。
このうち2つは失敗するまでの時間で区別できます。そのため、何かが即座に失敗したのか、それとも停止したのかに気づくことは、どんなエラーメッセージよりも価値があります。
スタックの下から上へ確認します。名前、次にマシン、次にポート、次にサービス、最後にレスポンスです。
チャレンジ
上級者3つの異なる失敗を発生させ、それぞれに終了コードのラベルを付けてください。
どこにもサーバーが実行されていない状態で、次を出力してください:
refused:とhttp://127.0.0.1:9999/からのコードdropped:と、2秒の制限時間を設定したhttp://10.255.255.1/からのコードnotls:とhttps://127.0.0.1:9999/からのコード
期待される出力:
refused: 7
dropped: 28
notls: 73つ目については考える価値があります。まったく何も待ち受けていない場合、TLSが試行される前に接続が拒否されるからです。
自分で試してみよう
ターミナル
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ターミナルで学ぶネットワークのすべてのレッスン
自分で練習してみよう: Terminalプレイグラウンド