✍️blog

技術系のこととか

プロキシ環境でWSLをインストールしたら設定しておきたいこと

日々、プロキシで消耗しているわけですが、
プロキシ環境下でWSLを使っているときにこの辺りは最低限設定するよなというところをまとめます。
一度設定したらしばらくは大丈夫なものがほとんどですが、いろんな理由で数カ月に一度はこのあたりの設定をしている気がする。。。

WSLのUbuntu 22.04を前提としています。

定番の環境変数設定

もはや言うまでもないであろうhttp_proxyの設定を行います。
$HOME/.bashrcとかに書いておくのが定番でしょうか。

export HTTP_PROXY="http://${プロキシサーバーIPやホスト名}:${ポート番号}"
export HTTPS_PROXY="http://${プロキシサーバーIPやホスト名}:${ポート番号}"

aptコマンドのプロキシ設定

aptコマンドは上記の環境変数を参照してくれず、個別に設定する必要があります。
/etc/apt/apt.confに以下の内容を追記します。

Acquire::http::Proxy http://${プロキシサーバーIPやホスト名}:${ポート番号};
Acquire::https::Proxy http://${プロキシサーバーIPやホスト名}:${ポート番号};

Dockerサービスにプロキシを設定

WSLを使う理由の一つにDockerを使いたいからというのも割とあるのかなと思います。
docker pullとかする時に利用されるプロキシを設定します。

まずは事前にsystemdを有効にします。
(dockerインストール前の方が良いかも...)
dockerの公式ドキュメントはsystemd前提?のような書き方になっているので
有効にすることでdockerのドキュメントに沿って設定できます。

docs.docker.jp

/etc/wsl.confへ以下を追記します。

[boot]
systemd=true

wsl --shutdownでwslを再起動します。

続いてdockerの設定を行います。

/etc/systemd/system/docker.service.d/override.confへ以下の内容を追記します。

[Service]
Environment = 'http_proxy=http://${プロキシサーバーIPやホスト名}:${ポート番号}' 'https_proxy=http://${プロキシサーバーIPやホスト名}:${ポート番号}'

以下のコマンドで設定を反映します。

sudo systemctl daemon-reload
sudo systemctl restart docker

docker info コマンドでプロキシが設定されているかが確認できます。

おまけ

ほかにも、pythonとかnode.jsとか作業される内容によっては設定すべきものはありそうですが、
最低限上記が設定できていればある程度の作業はできるのではないでしょうか。

ちなみに、以下のコマンドでWSL内でホスト側のIPを取得できます。

WIN_HOST_IP=$(cat /etc/resolv.conf | grep nameserver | cut -d' ' -f2)

ご活用くださいw

via GIPHY