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

状況

外部の API を呼ぶため、社内サーバーの環境変数に http_proxy と https_proxy(proxy.example.jp:8080)を設定した。外部へは通るようになったが、社内の監視 API http://10.0.5.12:8080/status への curl がプロキシのエラーページ(403)を返すようになった。

直し方として最も適切なものは?

正答

  1. no_proxy に社内の宛先(10.0.5.12 や社内のドメイン)を加える
  2. http_proxy と https_proxy を消し、プロキシを使わずにつなぐ
  3. 社内サーバー 10.0.5.12 のファイアウォールで 8080 番を開ける
  4. 監視 API の 8080 番を 443 番に変えて、HTTPS で呼ぶ

解説

環境変数でプロキシを設定すると、curl など多くの道具は、すべての宛先への要求をプロキシに送る。社外向けのプロキシは社内の 10.0.5.12 に取り次がない(または許可していない)ため、プロキシ自身が 403 を返している。要求は監視 API に届いていないので、10.0.5.12 のファイアウォール(3 番目)を開けても変わらない。no_proxy に社内の IP やドメインを並べると、それらにはプロキシを通さず直接つなぐ。プロキシの設定を消す(2 番目)と、外部 API に出られない元の状態に戻る。HTTPS にしても(4 番目)https_proxy で同じくプロキシに送られる。

参考: everything.curl.dev

troubleshootingproxyno-proxycurl

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

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