Linuxのプロキシサーバー設定をしよう

Linux

こんにちは!ITエンジニアの あおのり です。

ITエンジニア
ITエンジニア

Linuxが使えるようになったけど、プロキシサーバーの設定ってどうやればいいのかな?

コマンドラインだけでLinux使ってると設定方法がわからなくって…。

あおのり
あおのり

Linuxのプロキシサーバーの設定はいろいろとあって難しいよね。

今回は、WSLをつかうことを前提として、基本的な設定方法を紹介しよう!

以前の記事でWindows 10 の Linux 用 Windows サブシステム(WSL)を使って、Linuxを動かす環境を構築する方法を紹介しました。

今回はその環境を使ってプロキシサーバーを設定する方法を紹介します。

こんな方に読んでほしい
  • これからLinuxを勉強したい方
  • Linux 用 Windows サブシステム(WSL)を使つかってみたい方
  • Linuxでのプロキシサーバーの設定方法を知りたい方

Linuxのプロキシサーバーの設定方法はいろいろとあります。

特に会社でインターネットを使うときはプロキシサーバー経由でないと接続できないことは多いのではないでしょうか?

Linuxでプロキシサーバーの設定をしたいと思っている方は、是非最後まで読んでみて下さい。

本記事のポイント
  • Linuxでのプロキシサーバーの設定ができるようになる
  • Linuxでインターネットに接続できるようになる
スポンサーリンク

Linuxでのプロキシサーバー設定の基礎知識

Linuxをコマンドライン(CUI)で使用する場合、基本的には環境変数「http_proxy」「https_proxy」「ftp_proxy」などにプロキシサーバーの設定をします。

ただし、実行コマンドによっては個別の設定が必要になるので注意が必要です。

以下の表は個別設定が必要なコマンドの例です。他にも個別設定が必要なコマンドがあります。

実行コマンド 設定方法例
apt-get /etc/apt/apt.conf などのファイルにプロキシサーバーの設定をする
git git config コマンドで プロキシサーバー を設定
もしくは~/.gitconfig などのファイルにプロキシサーバーの設定をする
スポンサーリンク

環境変数へのプロキシサーバー設定

ユーザー設定がない場合とある場合で設定方法が多少異なります。

ユーザー認証がない場合

http_proxy=http[s]://<proxy_host>:<proxy_port>/
https_proxy=http[s]://<proxy_host>:<proxy_port>/
ftp_proxy=http[s]://<proxy_host>:<proxy_port>/

ユーザー認証がある場合

http_proxy=http[s]://<user_name>:<password>@<proxy_host>:<proxy_port>/
https_proxy=http[s]://<user_name>:<password>@<proxy_host>:<proxy_port>/
ftp_proxy=http[s]://<user_name>:<password>@<proxy_host>:<proxy_port>/

プロキシサーバーの環境によって「http://」または「https://」から始まる文字列で設定してください。また、他の項目は以下表を参照してください。

項目内容
<proxy_host>プロキシーサーバーのホスト名、もしくはIPアドレス
<proxy_port>ポート番号
<user_name>ユーザー名、ユーザーID
<password>パスワード
スポンサーリンク

環境変数へのプロキシサーバー設定方法例

環境変数にプロキシサーバーの設定をする場合、exportコマンドで設定できます。

以下表を例にしてexportコマンドでの設定例を紹介します。

項目設定例
<proxy_host>proxy
<proxy_port>8080
<user_name>aonori
<password>12345678
$ export http_proxy=https://aonori:12345678@proxy:8080/
$ export https_proxy=https://aonori:12345678@proxy:8080/
$ export ftp_proxy=https://aonori:12345678@proxy:8080/

環境変数にプロキシサーバーの設定ができているかは以下コマンドで確認できます。

$ printenv http_proxy
https://aonori:12345678@proxy:8080/ 
$ printenv https_proxy
https://aonori:12345678@proxy:8080/
$ printenv ftp_proxy
https://aonori:12345678@proxy:8080/
スポンサーリンク

コマンドプロンプト(シェル、bash)を立ち上げる時に自動設定する方法

コマンドプロンプト(シェル、bash)を立ち上げる時に、環境変数にプロキシサーバーの設定を自動で設定することもできます。

ユーザー認証がないプロキシサーバーの場合はこの方法が簡単で良いかと思います。

ユーザー認証があるプロキシサーバーの場合はパスワードをファイルに保存されます。
このため、パスワード更新漏れでアカウントロックされてしまうパスワードが他人に知られてしまう。など不都合が発生しやすいので注意してください。

「~/.bachrc」や「~/.profile」ファイルを編集して、ファイルの一番最後などに以下内容を付け加えます。

export http_proxy=http[s]://<user_name>:<password>@<proxy_host>:<proxy_port>/
export https_proxy=http[s]://<user_name>:<password>@<proxy_host>:<proxy_port>/
export ftp_proxy=http[s]://<user_name>:<password>@<proxy_host>:<proxy_port>/

プロキシサーバーの環境によって「http://」または「https://」から始まる文字列で設定してください。また、他の項目は以下表を参照してください。

項目内容
<proxy_host>プロキシーサーバーのホスト名、もしくはIPアドレス
<proxy_port>ポート番号
<user_name>ユーザー名、ユーザーID
<password>パスワード
スポンサーリンク

プロキシサーバー設定用のシェルスクリプトを使う

プロキシサーバー設定用のシェルスクリプトを作成し、インターネットに接続が必要になる時に、そのシェルスクリプトを実行することもできます。

この方法では、シェルスクリプト実行後に一時的に環境変数にプロキシサーバーの設定がされ、コマンドプロンプト終了時やLinux終了時に設定が消えるため、ユーザー認証があるプロキシサーバーの場合の設定方法としておすすめです。

「set_proxy.sh」ファイルを作成。

#!/bin/bash

PROXY_HOST=proxy
PROXY_PORT=8080

read -p "UserName: " USER_NAME
read -sp "Possword: " PASSWORD
echo ""

export http_proxy=https://$USER_NAME:$PASSWORD@$PROXY_HOST:$PROXY_PORT/
export https_proxy=https://$USER_NAME:$PASSWORD@$PROXY_HOST:$PROXY_PORT/
export ftp_proxy=https://$USER_NAME:$PASSWORD@$PROXY_HOST:$PROXY_PORT/

「PROXY_HOST=proxy」「PROXY_PORT=8080」は自分の環境に合わせて修正してください。

「set_proxy.sh」をsourceコマンドで実行します。

$ source set_proxy.sh
UserName: aonori
Possword:

「set_proxy.sh」コマンドに実行権限を与えて、「$ ./set_proxy.sh」では環境変数が反映されませんので注意してください。

「printenv」コマンドで設定を確認してください。反映されているかと思います。

$ printenv http_proxy
https://aonori:12345678@proxy:8080/ 
$ printenv https_proxy
https://aonori:12345678@proxy:8080/
$ printenv ftp_proxy
https://aonori:12345678@proxy:8080/
スポンサーリンク

おまけ: 環境変数へのプロキシサーバー設定でapt-getを使う

環境変数へプロキシサーバーの設定をしたけど、apt-getコマンド実行時、そのままでは0%から進捗がすすまないプロキシサーバーエラーが発生して困ることがあるかと思います。

$ sudo apt-get update

apt-getコマンドは/etc/apt/apt.confなどのファイルにプロキシサーバーの設定をすれば、プロキシサーバー経由でインターネットに接続できますが、ユーザー認証がある場合など、パスワードをファイルに保存したくない時もあるかと思います。

これは「sudo」コマンドが実行される仕組みに原因があります。

sudoコマンドはスーパーユーザー(rootユーザー)の権限でコマンドを実行するコマンドのため、sudoコマンドを実行したユーザーの環境変数は引き継がずに sudoコマンド専用の環境変数に置き換えられてコマンドが実行されます。

このため、環境変数にプロキシサーバー設定したとしても、その内容が引き継がれません。

sudoコマンド実行時「-E オプション」を付与することにより、sudoコマンドを実行したユーザーの環境変数を引き継いでapt-getコマンドを実行するされ、プロキシサーバー経由でのインターネット接続が可能ですが、使う場合は注意してください。

$ sudo -E apt-get update
スポンサーリンク

まとめ:Linuxでプロキシサーバーの設定をできるようになろう

今回は、Linuxのでプロキシサーバー設定の基礎知識を紹介し、環境変数をつかってプロキシサーバーを設定する方法を紹介しました。

Linuxでのプロキシサーバー設定のポイント
  • Linuxでのプロキシサーバーの設定は環境変数を使って設定できる
  • ユーザー認証がない場合とある場合で設定内容が異なる
  • プロキシサーバー設定用のシェルスクリプトが便利

特に会社のLinuxで、インターネットを使うときのなど、プロキシサーバー設定で困っている方の問題解決につながればうれしいです。

Linuxでのプロキシサーバー設定方法を覚えて、Linuxでの開発を効率的に行いましょう!

今回の記事が少しでも皆さんの役に立てば幸いです。

以上、あおのりでした!

タイトルとURLをコピーしました