WindowsホストからWSL2のWebアプリケーションにアクセスする

これは2019/07/29現在の情報に基づくもので、今後の機能追加・廃止に伴い記載内容との乖離が発生する可能性があります。特にWSL2は現在まだGAではないので、大いに変更の可能性があります。

Build 18945で変更があり、localhostでアクセスできるようになった。

What’s new for WSL in Insiders Preview Build 18945
https://devblogs.microsoft.com/commandline/whats-new-for-wsl-in-insiders-preview-build-18945/

実際に確認してみる。まず、簡単なアプリケーションを作成する。今回はHelidon SE (1.2) のQuickStartを使う。QuickStartアプリケーションの作成は以下を参照。

Guides — Quickstart SE
https://helidon.io/docs/latest/#/guides/02_quickstart-se

このアプリケーションはHello World的なREST APIをホストするアプリケーションで、WSL2上で http://localhost:8080/greet で待機する。

では、Windows側で動作確認。コマンドプロンプトでcurlを実行してみると…。

無事にlocalhostでアクセスできることが確認できた。以前は以下の操作が必要であったが、今後は不要ということがわかった。以下は記録目的で残しておく。


これは2019/07/09現在の情報に基づくもので、今後の機能追加・廃止に伴い記載内容との乖離が発生する可能性があります。特にWSL2は現在まだGAではないので、大いに変更の可能性があります。

IPアドレスを取得する方法は以下のドキュメントに記載がある。

Accessing Linux applications from Windows
https://docs.microsoft.com/en-us/windows/wsl/wsl2-ux-changes#accessing-linux-applications-from-windows

この中で、以下の記述がある。

– Obtain the IP address of your distro by running the command ip addr inside of your WSL distro and finding it under the inet value of the eth0 interface.You can find this more easily by filtering the output of the command using grep like so: ip addr | grep eth0.

– Connect to your Linux server using the IP you found above.

Accessing Linux applications from Windows
https://docs.microsoft.com/en-us/windows/wsl/wsl2-ux-changes#accessing-linux-applications-from-windows

実際にコマンドを打ってみると…

この例では、WSL2で動作しているubuntuの環境の外部IPアドレスは 172.17.213.35 であることがわかる。そのため、このIPアドレスを使えば、WSL2内で稼働しているWebアプリケーションにアクセスできる。以下は8080ポートで公開しているWebアプリケーションにcURLでアクセスした例。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中