WSL2で起動したサーバーに外部の端末からアクセスする

ぶっちゃけググれば、もっと詳細に説明してくれている記事がいくらでもみつかるのだけれど、一応自分用のメモとして書いておく。

概要

wsl2の中でサーバーを立ち上げて開発していると、外部の端末(例えば実機スマホなど)から動作確認のためにアクセスしたいときがある。そのための手順メモ。

作業手順

1.ローカルマシン(windows)のipアドレスを確認

同時に「イーサネット アダプター vEthernet (WSL):」がちゃんと設定されているかも同時に確認する。

2.wsl2(ubuntu)のipアドレス確認


3.wsl側でサーバー起動

ここでは、httpサーバーをport:3000で起動したものとする。

4.ローカルマシンからwslのipアドレスを用いてアクセスできるか確認

確認作業はローカルマシンで行う

http://<wslのipアドレス>:3000 にアクセス

これでアクセスできなかったらwsl内かWSLのイーサネットアダプター周りで問題が起きてる。

5.ローカルマシンのipアドレスでwslのサーバーにアクセスできるようにポートフォワーディングの設定を行う

以下、コマンド実行はコマンドプロンプトかpowershellで。どちらも管理者権限で実行する必要がある。


6.ローカルマシンのipアドレスを用いてwslのサーバーにアクセスできるか確認

確認作業はローカルマシンで行う

http://<ローカルマシンのipアドレス>:3000 にアクセス

これでアクセスできない場合は、ポートフォワーディングがうまくいっていない。

7.外部の端末からローカルマシンのipアドレスを用いてwslのサーバーにアクセスできるか確認

同一ネットワークに所属する外部端末を使ってアクセスできるか確認する。

http://<ローカルマシンのipアドレス>:3000 にアクセス

ここでアクセスできない場合はファイヤーウォールにブロックされてる可能性が高いのでファイヤーウォールの設定から、「詳細設定」に進み「受信の規制」に新しい規則を作ってport:3000を開ける。

アクセスはプライベートネットワークのみに限定し、不要なときは「規則の無効化」を行う