NRIネットコム Blog

NRIネットコム社員が様々な視点で、日々の気づきやナレッジを発信するメディアです

入社3日目でプロキシにはじかれた話

はじめに

みなさん初めまして。2023年5月にNRIネットコム株式会社に中途入社した山田です。 前職では事業会社で社内SEとして働いており、ベンダーコントロールを主とした業務をおこなっておりました。
さて、入社してから約2ヶ月が経過しようとしていますが、NRIネットコムでは毎日が新しい発見の連続で、しんどい時もありますが日々楽しく仕事をしております。 今回は、社内研修で最も印象に残っている「プロキシ設定」についてまとめます。

プロキシとは?

プロキシ(PROXY)とは英語で「代理、代理人」という意味を持ちます。ITの世界ではインターネットを接続する際のアクセスを代理で行うシステムを指します。一般的な企業では企業内のネットワークから外部ネットワークにアクセスするとき、プロキシと呼ばれるサーバを経由します。プロキシを経由することでサイバー攻撃への対策となるなど様々なメリットがあります。

印象に残った理由

入社3日目の出来事でした。上でも述べましたが、一般的な企業では外部ネットワークにアクセスするとき、プロキシを経由する必要があります。これはMicrosoft EdgeやGoogle_Chromeを利用したインターネット検索だけでなく、コマンドプロンプトを用いたライブラリのインストールにも当てはまります。実際の研修でもpythonのnumpyをインストールしようとしたら以下の警告が出てきました。

...なんだこれは。 個人開発などでライブラリのインストールを経験していたので、軽くいけるだろうと思っていたら全然イメージと違いました。研修で質問をすると、どうやらプロキシを経由せずに外部ネットワークにアクセスしようとしたときに出るエラーのようで...。早速自分の知らない内容が出てきて、対応には苦労しました。

プロキシ情報の確認方法

最初に、プロキシ設定画面からプロキシの情報を確認しました。PCのブラウザで設定が済んでいる場合、プロキシ設定画面は以下の手順で確認することができます。

  1. 「Windows + I」などで設定アプリを開く。
  2. ネットワークとインターネットを開く
  3. 左側にあるプロキシを開く

画面を確認すると、「自動プロキシ セットアップ」と「手動プロキシ セットアップ」の2種類の設定が存在しています。どの方法でプロキシの設定がされているかは所属する組織によって異なると思います。それぞれの設定で、プロキシ情報を確認する方法は以下のようになります。

  • 自動プロキシ セットアップの場合

「スクリプトのアドレス」の部分に自動構成スクリプトのURLが記載されています。自動構成スクリプトをダウンロードし、その記載内容からプロキシのIPアドレス(ホスト名)、ポート番号を確認します。

  • 手動プロキシ セットアップの場合

ホスト、ポート記載されているのでそのまま確認します。

以上が設定の確認方法になります。ただし、プロキシのユーザ認証機能が有効である場合、Edgeなどのブラウザから外部ネットワークに出るときの認証ポップアップ画面からIPアドレス(ホスト名)、ポート番号を確認することもできます。筆者はプロキシの設定を確認する場合はこの方法をよく使用します。

プロキシ設定をしてみる

プロキシの設定には以下の4つのパラメータが必要になります。

  1. ユーザー名
  2. パスワード
  3. プロキシのIPアドレス(またはホスト名)
  4. ポート番号

上記の4つのパラメータを組み合わせ、以下のコマンドでプロキシを介してnumpyライブラリをインストールすることができます。

pip install --proxy=http://ユーザー名:パスワード@プロキシのIPアドレス:ポート番号 ライブラリ名

pip install --proxy=https//ユーザー名:パスワード@プロキシのIPアドレス:ポート番号 ライブラリ名

例を挙げると以下のようになります。

--proxy以下を新たに加えることでプロキシを経由してライブラリをインストールできるのか...と安心したところで再び新たな問題が。ライブラリをインストールする度に毎回プロキシの設定を入力しないといけない状況になっていました。環境変数としてプロキシを設定する方法があります。コマンドプロンプト上で以下のコマンドを入力します。なお、https_proxyの設定でhttp://としていますが、ここではクライアントからプロキシへの通信規則に応じて変化します。

set http_proxy=http://ユーザー名:パスワード@プロキシのIPアドレス:ポート番号

set https_proxy=http://ユーザー名:パスワード@プロキシのIPアドレス:ポート番号

これらのコマンドで環境変数を設定すると、--proxy以下を新たに加えることなく「pip install ライブラリ名」とするだけでライブラリをインストールすることが可能です。

なお、環境変数の確認は以下のコマンドで確認できます。

echo %http_proxy%

echo %https_proxy%

おわりに

コマンドプロンプト上でのプロキシ設定について書きました。

おそらくWeb業界の中では常識中の常識のような内容かと思います。ただ、業務であまり触ってこなかった私としては非常に驚いた内容でした。今までもプロキシの概念は資格勉強などで知識としては持っていましたが、実際に設定するとなると手も足も出ませんでした。

入社3日目で初めて苦労した瞬間だったので2ヶ月が経過しようとしている今でも印象に残っている内容です。この時点で、これからも色んなところで苦労していくんだろうなぁ...と思いました。苦労を乗り越えるごとに自身も成長しているという実感はあります。今後も新しい知識を習得し一日でも早く一人前のエンジニアとなるために、研修や業務に取り組みます。

執筆者:山田 理己 まだまだ勉強していきます。