- WSL2環境におけるプロキシ設定の基本概念
- 1. Ubuntuの環境変数にプロキシを設定(最も基本)
- 2. apt(パッケージ管理)のプロキシ設定
- 3. Docker のプロキシ設定(WSL2ユーザーに特に重要!)
- まとめ:WSL2とUbuntuのプロキシ設定はこれで万全!
- 関連記事
私は普段からWindows 11のWSL2(Windows Subsystem for Linux 2)を使ってUbuntu環境を構築し、開発や検証を行っています。企業ネットワークや特定の検証環境では、インターネットに接続するために「プロキシサーバー」の設定が必須となることがよくありますよね。これ、WSL2環境だと少し特殊な部分があって、私も試行錯誤を重ねてきました。
今回は、私がWindows 11上のWSL2でUbuntuの最新バージョン(Ubuntu 22.04 LTS や 24.04 LTS など)を利用する際に実践しているプロキシ設定の全てを、詳細に解説していきます。基本的な環境変数から、パッケージ管理の apt、ウェブ通信の curl、そして開発で使うことの多い Docker の設定まで、網羅的にまとめました。
この情報が、WSL2環境でのプロキシ設定にお悩みの方の助けになれば、私は非常に嬉しいです!
WSL2環境におけるプロキシ設定の基本概念
Windows 11のWSL2でプロキシを設定する際、私は以下のポイントを常に意識しています。
- WSL2は独立したVM: WSL2のUbuntuは、Windowsのネットワークから独立した仮想マシンとして動作します。そのため、Windows側のプロキシ設定がUbuntuに自動的に引き継がれるわけではありません。Ubuntu側で明示的に設定が必要です。
- IPアドレスの変動: WSL2のUbuntuインスタンスのIPアドレスは、Windowsを再起動するたびに変わることがあります。このため、特定のIPアドレスを指定する設定は避け、可能であればホスト名(DNS)で指定するようにしています。
- WindowsホストのIP取得: UbuntuからWindowsホストのIPアドレスを参照する必要がある場合、
resolv.confのnameserver行などを利用します。 - 認証情報(ユーザー名/パスワード): プロキシに認証が必要な場合、URLに直接埋め込む形式が一般的ですが、履歴に残るためセキュリティに注意が必要です。私は環境変数として設定することが多いです。
1. Ubuntuの環境変数にプロキシを設定(最も基本)
これは、多くのコマンドラインツール(wget, curl など)やアプリケーションが参照する、最も基本的なプロキシ設定方法です。私はユーザーごとに設定することが多いので、~/.bashrc や ~/.profile に記述しています。
設定ファイルを選ぶ
~/.bashrc: Bashシェルが起動するたびに読み込まれるファイル。対話シェルにのみ適用されます。~/.profile: ログイン時に一度だけ読み込まれるファイル。非対話シェル(スクリプト実行時など)でも環境変数を引き継ぎたい場合に有効です。私は~/.bashrcで設定し、必要に応じて~/.profileから~/.bashrcをソースするようにしています。
今回は ~/.bashrc で設定を進めます。
~/.bashrcを編集 お好みのテキストエディタ(nanoやvimなど)で~/.bashrcを開きます。nano ~/.bashrcファイルの末尾に以下の行を追記します。
# Proxy settings export http_proxy="http://your.proxy.address:proxy.port/" export https_proxy="http://your.proxy.address:proxy.port/" export ftp_proxy="http://your.proxy.address:proxy.port/" export all_proxy="http://your.proxy.address:proxy.port/" # all_proxyも設定推奨 export no_proxy="localhost,127.0.0.1,::1,your-internal-domain.local" # プロキシを通さないホストyour.proxy.address: プロキシサーバーのIPアドレスまたはホスト名(例:192.168.1.1またはproxy.example.com)proxy.port: プロキシのポート番号(例:8080)username:password@: プロキシに認証が必要な場合は、http://username:password@your.proxy.address:proxy.port/のようにユーザー名とパスワードを含めます。ただし、履歴に残るためセキュリティには注意が必要です。私の場合、認証が必要な場合は.bashrcに直接書き込まず、スクリプト実行時に環境変数として渡すか、ツールごとに設定することが多いです。no_proxy: ローカルホストや社内ネットワークなど、プロキシを通したくないアドレスを指定します。カンマ区切りで複数指定可能です。
~/.bashrcの再読み込み 変更を反映させるには、現在のシェルでsourceコマンドを実行するか、新しいシェルを開き直します。source ~/.bashrc設定の確認 正しく設定されたか、
envコマンドで確認します。env | grep proxy期待通りのプロキシ設定が表示されれば成功です。
動作確認(wget/curl)
wget や curl コマンドで外部サイトにアクセスできるか確認します。
wget https://www.google.com curl -v https://www.google.com
Proxy request sent, awaiting response... のような表示があれば、プロキシ経由でアクセスできています。
2. apt(パッケージ管理)のプロキシ設定
Ubuntuでパッケージのインストールや更新を行う apt コマンドも、プロキシ環境下では設定が必要です。これはシステム全体に影響するため、sudo を使って設定ファイルを作成します。
設定ファイルの作成
/etc/apt/apt.conf.d/ディレクトリ配下に、プロキシ設定を記述したファイル(例:00proxyやapt-proxyなど)を新規作成します。ファイル名は任意の数字と文字でOKですが、数字が若い方が優先されます。sudo nano /etc/apt/apt.conf.d/00proxyファイルに以下の内容を記述します。
Acquire::http::Proxy "http://username:password@your.proxy.address:proxy.port/"; Acquire::https::Proxy "http://username:password@your.proxy.address:proxy.port/";username:password@は、必要に応じて設定してください。Acquire::no-proxyもここで設定できます。
Acquire::http::Proxy "http://your.proxy.address:proxy.port/"; Acquire::https::Proxy "http://your.proxy.address:proxy.port/"; Acquire::no-proxy "localhost,127.0.0.1,::1,your-internal-domain.local";動作確認 設定が正しく反映されたか、
apt updateコマンドでパッケージリストを更新してみます。sudo apt updateエラーなく完了すればOKです。
3. Docker のプロキシ設定(WSL2ユーザーに特に重要!)
WSL2環境でDocker Desktop for Windowsを利用している方も多いと思います。Dockerもプロキシ経由でイメージのダウンロードなどを行うためには設定が必要です。この設定は、Ubuntuの環境変数とは別に、Dockerデーモン(dockerd)に対して行います。
方法1: Docker Desktop for Windows の設定(推奨)
Docker Desktop for Windowsを使っている場合、GUIからの設定が最も簡単で確実です。
- WindowsのタスクバーにあるDockerアイコンを右クリックし、「Settings」を選択します。
- 左側のメニューから「Resources」>「Proxies」を選択します。
- 「Manual proxy configuration」をオンにします。
- 「HTTP」と「HTTPS」の欄に、それぞれプロキシサーバーのアドレスとポート番号を入力します。(例:
http://your.proxy.address:proxy.port) - 「No proxy」の欄には、プロキシを通したくないアドレスをカンマ区切りで入力します。
- 「Apply & Restart」をクリックしてDockerデーモンを再起動します。
方法2: Docker デーモンの設定ファイル(WSL2専用のdockerdを直接設定する場合)
もしDocker Desktopではなく、WSL2上のUbuntuに直接Dockerデーモンをインストールしている場合は、以下のファイルを編集します。
Dockerデーモンの設定ファイルを作成または編集
/etc/systemd/system/docker.service.d/http-proxy.confまたは/etc/docker/daemon.jsonを編集します。systemdを利用する場合はhttp-proxy.confが推奨されます。sudo mkdir -p /etc/systemd/system/docker.service.d sudo nano /etc/systemd/system/docker.service.d/http-proxy.confファイルに以下の内容を記述します。
[Service] Environment="HTTP_PROXY=http://your.proxy.address:proxy.port/" Environment="HTTPS_PROXY=http://your.proxy.address:proxy.port/" Environment="NO_PROXY=localhost,127.0.0.1,::1,your-internal-domain.local"- 認証が必要な場合は、ここにも
username:password@を含めます。
- 認証が必要な場合は、ここにも
Dockerデーモンのリロードと再起動
sudo systemctl daemon-reload sudo systemctl restart docker
動作確認(Docker)
Dockerイメージをプルできるか確認します。
docker pull hello-world
正常にイメージがプルできれば、Dockerのプロキシ設定も完了です。
まとめ:WSL2とUbuntuのプロキシ設定はこれで万全!
私はWindows 11のWSL2環境でUbuntuを常用していますが、プロキシ設定はIT作業において避けて通れない道です。今回の記事で、環境変数、apt、curl、そしてDockerという主要なツールでのプロキシ設定方法を網羅的に解説しました。
特にWSL2環境特有の注意点も交えながら解説したことで、皆さんの日々の開発や学習がよりスムーズに進むことを願っています。この設定さえ乗り越えれば、あとは快適なLinuxライフが待っていますよ!
もしこの記事が皆さんの役に立ったなら、私はとても嬉しいです。
関連記事
WSL2やUbuntuのプロキシ設定について、バージョン別の記事もあわせてご参照ください。