ネットワーク基礎4 択難易度 応用

状況

アプリを再デプロイした直後から、同じネットワークの別サーバーで curl -v http://10.0.1.20:8080/ を実行すると、すぐに「Connection refused」が返る。ping 10.0.1.20 には応答がある。

原因を調べる順番として、最も適切なものは?

  1. Aサーバーで ss -lnt を見て、8080 番の待ち受けとそのアドレス
  2. Bdig で名前解決ができているか
  3. C途中のファイアウォールの規則
  4. Dアプリのログで起動時のエラーを探す

正答

  1. C → A → D → B
  2. B → C → A → D
  3. D → C → B → A
  4. A → D → C → B

解説

宛先を IP で直接書いているので、名前解決(B)は関係がなく最後でよい。「すぐに refused」は、パケットがサーバーまで届き、そのポートで誰も待ち受けていないと OS が断ったときの典型。直前に変えたのはアプリなので、まず ss -lnt で 8080 番を待ち受けているか、127.0.0.1 だけになっていないかを見る(A。安く速く、結果がはっきりする)。待ち受けていなければ、なぜ起動しなかったかをアプリのログで探す(D)。待ち受けが正常なのに refused なら、途中のファイアウォールが拒否応答を返している可能性を見る(C)。ファイアウォールから見るのは、変えていない層からの遠回り。

参考: man7.org

troubleshootingconnection-refusedsslisten

この問題を含む ネットワーク基礎 のテストを制限時間つきで解く

ネットワーク基礎クイズへ