WSL2で起動したサーバーに外部の端末からアクセスする
ぶっちゃけググれば、もっと詳細に説明してくれている記事がいくらでもみつかるのだけれど、一応自分用のメモとして書いておく。
概要
wsl2の中でサーバーを立ち上げて開発していると、外部の端末(例えば実機スマホなど)から動作確認のためにアクセスしたいときがある。そのための手順メモ。
作業手順
1.ホストOS(windows)のipアドレスを確認
1 |
> ipconfig |
同時に「イーサネット アダプター vEthernet (WSL):」がちゃんと設定されているかも同時に確認する。
2.wsl2(ubuntu)のipアドレス確認
1 |
> ip a show dev eth0 |
3.wsl側でサーバー起動
ここでは、httpサーバーをport:3000で起動したものとする。
4.ホストOSからwslのipアドレスを用いてアクセスできるか確認
確認作業はホストOSのブラウザで行う
http://<wslのipアドレス>:3000 にアクセス
これでアクセスできなかったらwsl内かWSLのイーサネットアダプター周りで問題が起きてる。
5.ホストOSのipアドレスでwslのサーバーにアクセスできるようにポートフォワーディングの設定を行う
以下、コマンド実行はコマンドプロンプトかpowershellで。どちらも管理者権限で実行する必要がある。
1 2 3 4 5 6 7 8 |
ポートフォワーディングを設定 > netsh.exe interface portproxy add v4tov4 listenaddress=<ホストOSのipアドレス>listenport=3000 connectaddress=<wslのipアドレス> connectport=3000 設定確認 > netsh.exe interface portproxy show v4tov4 削除するときは以下 > netsh.exe interface portproxy delete v4tov4 listenport=3000 listenaddress=<ホストOSのipアドレス> |
6.ホストOSのipアドレスを用いてwslのサーバーにアクセスできるか確認
確認作業はホストOSのブラウザで行う
http://<ホストOSのipアドレス>:3000 にアクセス
これでアクセスできない場合は、ポートフォワーディングがうまくいっていない。
7.外部の端末からホストOSのipアドレスを用いてwslのサーバーにアクセスできるか確認
同一ネットワークに所属する外部端末を使ってアクセスできるか確認する。
http://<ホストOSのipアドレス>:3000 にアクセス
ここでアクセスできない場合はファイヤーウォールにブロックされてる可能性が高いのでWindowsのファイヤーウォール設定から、「詳細設定」に進み「受信の規制」に新しい規則を作ってport:3000を開ける。
アクセスはプライベートネットワークのみに限定し、不要なときは「規則の無効化」を行う
“WSL2で起動したサーバーに外部の端末からアクセスする” への1件の返信
現在コメントは受け付けていません。