状況
社内から外部へは、プロキシ proxy.example.jp:8080 を経由しないと出られない。社内 PC のブラウザ(プロキシ設定済み)では https://api.example.com/ を開けるが、同じ PC のターミナルの curl だけが失敗する。
最も疑わしい候補は?
- A
api.example.comのサーバー証明書 - Bターミナルにプロキシの設定(
https_proxyなど)が無い - C
api.example.comの DNS レコード - DAPI サーバー側のファイアウォール
$ curl -v https://api.example.com/* Trying 203.0.113.50:443...* connect to 203.0.113.50 port 443 failed: Connection timed out正答
- D
- C
- B
- A
解説
ブラウザからは開けるので、API サーバー本体は動いており、そのファイアウォール(D)もプロキシからの接続は通している。curl の出力では IP が出ているので名前解決(C)も済んでおり、TCP の接続を始めた段階で時間切れになっている。TLS まで進んでいないので証明書(A)も関係がない。プロキシ経由でしか外へ出られないネットワークで、curl が直接相手の IP に接続しようとして社内のファイアウォールに捨てられている、と読むのが最も自然(B)。curl はブラウザのプロキシ設定を読まず、https_proxy などの環境変数か -x を見る。curl -v の出力に「Uses proxy」の行が無いことでも確かめられる。
この問題を含む ネットワーク基礎 のテストを制限時間つきで解く
ネットワーク基礎クイズへ