状況
外部の API を呼ぶため、社内サーバーの環境変数に http_proxy と https_proxy(proxy.example.jp:8080)を設定した。外部へは通るようになったが、社内の監視 API http://10.0.5.12:8080/status への curl がプロキシのエラーページ(403)を返すようになった。
直し方として最も適切なものは?
正答
no_proxyに社内の宛先(10.0.5.12や社内のドメイン)を加えるhttp_proxyとhttps_proxyを消し、プロキシを使わずにつなぐ- 社内サーバー
10.0.5.12のファイアウォールで 8080 番を開ける - 監視 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 で同じくプロキシに送られる。
この問題を含む ネットワーク基礎 のテストを制限時間つきで解く
ネットワーク基礎クイズへ