こんにちは!ITエンジニアの あおのり です。
Linuxが使えるようになったけど、プロキシサーバーの設定ってどうやればいいのかな?
コマンドラインだけでLinux使ってると設定方法がわからなくって…。
Linuxのプロキシサーバーの設定はいろいろとあって難しいよね。
今回は、WSLをつかうことを前提として、基本的な設定方法を紹介しよう!
以前の記事でWindows 10 の Linux 用 Windows サブシステム(WSL)を使って、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/
「set_proxy.sh」をsourceコマンドで実行します。
$ source set_proxy.sh
UserName: aonori
Possword:
「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での開発を効率的に行いましょう!
今回の記事が少しでも皆さんの役に立てば幸いです。
以上、あおのりでした!