WSL(Windows Subsystem for Linux)のProxy設定方法

Windows上でLinuxコマンドを使うためには、 MSYS2 などがありますよね。最近は別の選択肢として、MicrosftストアからLinuxをインストールできるようになりました。WSL(Windows Subsystem for Linux)という名前そうです。以前は Bash on Ubuntu on Windows と呼ばれていたように記憶しています。今は Ubuntuに限らず他のディストリビューションも使えるようです。

Proxy環境下では、WSL上からネットにアクセスしたりapt-getしたりするには、別途WSL側にもProxy設定が必要となります。今回はその設定方法を説明します。

スポンサーリンク

Proxy未設定時のエラー

Proxyを使っている環境でWSLでのProxy設定をしていない場合、例えばsudo apt updateを実行すると下記のようなエラーが出ます。ぱっとみ、DNS関係のエラーにも見えますが、Proxy未設定でもこのエラーが出ます。
(DNSの問題でもおそらく同じようなエラーが出ると思いますが、今回はProxyに絞って説明します)

username@hostname:~$ sudo apt update
Ign:1 http://archive.ubuntu.com/ubuntu xenial InRelease
Ign:2 http://security.ubuntu.com/ubuntu xenial-security InRelease
Ign:3 http://archive.ubuntu.com/ubuntu xenial-updates InRelease
Err:4 http://security.ubuntu.com/ubuntu xenial-security Release
  Something wicked happened resolving 'security.ubuntu.com:http' (-5 - No address associated with hostname)
Ign:5 http://archive.ubuntu.com/ubuntu xenial-backports InRelease
Err:6 http://archive.ubuntu.com/ubuntu xenial Release
  Something wicked happened resolving 'archive.ubuntu.com:http' (-5 - No address associated with hostname)
Err:7 http://archive.ubuntu.com/ubuntu xenial-updates Release
  Something wicked happened resolving 'archive.ubuntu.com:http' (-5 - No address associated with hostname)
Err:8 http://archive.ubuntu.com/ubuntu xenial-backports Release
  Something wicked happened resolving 'archive.ubuntu.com:http' (-5 - No address associated with hostname)
Reading package lists... Done
E: The repository 'http://security.ubuntu.com/ubuntu xenial-security Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://archive.ubuntu.com/ubuntu xenial Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://archive.ubuntu.com/ubuntu xenial-updates Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://archive.ubuntu.com/ubuntu xenial-backports Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

proxyの設定の確認

WSLのプロキシ設定は、基本的に現在Windows側にて設定されているものを使えばOKです。そこでまずは現状のプロキシ設定を確認します。

まずはじめに「コントロールパネル」を開きます。そのなかの「インターネットオプション」を選択します。

次に、「接続」タブを選択し「LANの設定」をクリックします。そうするとProxyなどの設定をするウィンドウが開きます。そこにProxyのアドレスとポート番号が書いてありますのでそれをメモします。

これでプロキシ設定の確認は終わりです。

http_proxy変数の設定

http_proxyとhttps_proxyという環境変数を設定する必要があります。これはMSYS2と同じですね。

ホームディレクトリ直下の.bashrcに下記のように設定を書いておけば良いと思います。これでログイン時に自動で設定されます。
「proxy-host」「proxy-port」には、先ほど確認したプロキシのアドレスとポート番号を入れて下さい。
「username」と「passward」は、WSLのではなくProxyのユーザ名とパスワードです。


export http_proxy=http://username:password@proxy-host:proxy-port
export https_proxy=http://username:password@proxy-host:proxy-port

apt.confの設定

次にapt.confファイルの設定です。/etc/apt/apt.confにて下記を設定して下さい。もし/etc/apt/apt.confがなければ新規に作成して下さい。行末の「;」を忘れないようにご注意ください。


Acquire::ftp::proxy "ftp://username:password@proxy-host:proxy-port";
Acquire::http::proxy "http://username:password@proxy-host:proxy-port";
Acquire::https::proxy "https://username:password@proxy-host:proxy-port";

これで設定は終わりです。WSLターミナルを一旦終了して、再度起動してみて下さい。sudo apt updateが成功すればOKです。

OK時は下記のような感じになります。

$ sudo apt update
Hit:1 http://archive.ubuntu.com/ubuntu xenial InRelease
Get:2 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]
Get:3 http://security.ubuntu.com/ubuntu xenial-security InRelease [107 kB]
Get:4 http://archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB]
Fetched 323 kB in 1s (181 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.

まとめ

今回はWSL(Windows Subsystem for Linux)のProxy設定の方法を説明しました。~/.bashrcと/etc/apt/apt.confに設定を追加すればOKです。ご参考になれば幸いです。

コメント