これまで何度か紹介してきたWLS2で、さらに便利な新機能が実装されました!
なんと、仮想ホストのWSL2上で実行しているWEBサーバに、Windowsホスト側からlocalhostでアクセスできるようになったんです!
これ、何がすごいって、Windows上で高速に動作する仮想ホストだったWSL2を、これまで以上にローカルマシンと同じように扱えるようになったってことなんです!
例えば、今まではWSL2上で動かしていたWEBサーバにブラウザでアクセスするには、WSL2仮想マシンのローカルIPを調べて、Windowsホスト側からそのIPにアクセスしなければなりませんでした。
この方法は、初期設定のIPが固定されていない状態だと、IPがコロコロ変わるので毎回面倒です。
ちなみに、今回の設定のためにはWSL2の有効化が必要なので、設定がまだの方は先にこちらの記事を参照してくださいね!
WSL2のインストール方法【WindowsにLinuxを使う!】
もくじ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の使い方が広がりました!
WSL2の登場によって、開発機としてMac以上の選択肢になったWindowsOSですが、今後のアップデートにも目が離せませんね!!