WSL2のWEBサーバにlocalhostでアクセスできる新機能を設定する!

2019-08-25

これまで何度か紹介してきたWLS2で、さらに便利な新機能が実装されました!
なんと、仮想ホストのWSL2上で実行しているWEBサーバに、Windowsホスト側からlocalhostでアクセスできるようになったんです!

これ、何がすごいって、Windows上で高速に動作する仮想ホストだったWSL2を、これまで以上にローカルマシンと同じように扱えるようになったってことなんです!

例えば、今まではWSL2上で動かしていたWEBサーバにブラウザでアクセスするには、WSL2仮想マシンのローカルIPを調べて、Windowsホスト側からそのIPにアクセスしなければなりませんでした。
この方法は、初期設定のIPが固定されていない状態だと、IPがコロコロ変わるので毎回面倒です。

ちなみに、今回の設定のためにはWSL2の有効化が必要なので、設定がまだの方は先にこちらの記事を参照してくださいね!

WSL2のインストール方法【WindowsにLinuxを使う!】

もくじ

  1. localhostでアクセスするための設定方法
  2. wslconfigの作成と設定
  3. まとめ

localhostでアクセスするための設定方法

安定の公式最強、ってことでこちらの記事を参考にしていきます。

What’s new for WSL in Insiders Preview Build 18945

最新版の情報だったので、英語のソースしかなかったですね。
やっぱり英語もっと勉強しないとなぁ笑

さて、上記の記事の内容によると、Windowsホストの自分のユーザーフォルダ直下に.wslconfigという設定ファイルを用意して、必要な設定を書き込めばOKのようです!
なんて簡単なんでしょう!

さらにこちらの設定ファイルで、WSLの仮想マシンが使えるリソースの制限も可能なようです。
WSLは僕の環境だと、VSCodeとつないで起動してるだけで常時1GBくらいのメモリは消費しているので、ロースペック環境だとリソースの制限は必要かもしれませんね!

いよいよ設定方法を解説していきます!

wslconfigの作成と設定

wslconfigは以下のフォルダに作成します。

C:\Users\あなたのユーザー名\

このフォルダの中に、.wslconfigという名前のファイルを作成してください。

設定の項目は以下の通りです。
この中の、localhostForwardingをTrueにしてあげれば設定は完了です!

設定はこちらを参考にしてます。
.wslconfigの設定方法

localhostでアクセスできるかどうかだけでなく、リソースの制限や、使用するLinuxカーネルまで指定することができます。

使い道が広がりますね!

[wsl2]
kernel=PATH              # ここにダウンロードしたLinuxカーネルの絶対PATHを入れると、WSLのカーネルを変更できます。
memory=SIZE              # WSL2のVMに割り当てるメモリを設定します。
processors=NUMBER        # WSL2のVMに割り当てるプロセスを設定します。
swap=SIZE                # WSL2のVMに割り当てるスワップ領域を設定します。
swapFile=PATH            # WSL2のVMに割り当てるスワップファイルを設定します。
localhostForwarding=BOOL # WSL2にlocalhostでアクセスするかどうか設定します。
# PATH の例 C:\\Users\\Ben\\kernel
# SIZE 割り当てサイズの例 8GB or 512MB

無事に成功するとこんな感じに。

ちゃんとWSL2上のDockerで起動したWEBサーバにlocalhostでアクセスできてますね。
素晴らしい。

ちなみに、WSL2でDockerの環境構築をする方法はこちら。

WSL2のUbuntuでDockerの環境構築をする!

まとめ

さて、これでさらにWSL2の使い方が広がりました!
WSL2の登場によって、開発機としてMac以上の選択肢になったWindowsOSですが、今後のアップデートにも目が離せませんね!!