WSLHostPatcherでWSL2上のサーバに外部からアクセスさせる

WSL2上で何かサーバーを起動すると、自動でWindows側からはlocalhostからアクセスできるようにポートフォワーディングが設定されます。しかし、設定対象がlocalhostなのでWindowsの外部からアクセスできません。

そこで、ネット上はいくつかの方法が紹介されています。

これらの方法は手間がかかったり、デメリットがあったりと一長一短です。

そこで、今回紹介する方法はWSLHostPatcherというツールです。

WSL2のlocalhost宛の通信を自動でポートフォワーディングするデフォルトの機能は、Windows上で動いているwslhost.exeプロセスで実現されています。本ツールはこのプロセスの動作をいじって(フックして)、localhost以外のIP宛の通信も自動でポートフォワーディングします。

使い方はすごく簡単です。https://github.com/CzBiX/WSLHostPatcher/releasesからWSLHostPatcher.zipをダウンロードし、中に入っているWSLHostPatcher.exeを実行するだけです。

実行後、WSL2上で起動したサーバは自動でポートフォワーディング設定され、Windows外部からもアクセスできるようになります。なお初めて使う場合は、Windows側でアラートが出るので許可する必要があります。
※ 実行前から起動しているサーバは自動で設定されません。サーバを再起動してください。

なお、このツールはWSL2を停止すると機能が無効になります。そのため、WSL2を再起動したりする場合は再度実行してあげてください。

また、もちろんですがWindows外からアクセスされるようになるため、セキュリティにはご注意ください。

タイトルとURLをコピーしました