wsl2(ubuntu)で実行しているNuxt3に他のPCからアクセス

はじめに

WSL2上でNuxt3でのWebシステムを開発している際に、テストのため違うパソコンからNuxt3に接続したい。
しかし、Nuxt3が起動しているWSL2はホストWindowsと別のネットワークに属していたため、
外部からホストWindowsに接続しても、WSLまでには接続できない、なので、Nuxt3にも接続できない。

対策として、ホストWindowsでポート番号〇〇の時は、WSL2のこのIPアドレスでポートは〇〇に渡してね~。 って設定をします。

かっこよく言うと、ポートフォワーディングします。

自分のIPアドレスを調べる

powershellで以下のコマンドで確認

ipconfig

「windowsのIPアドレスを調べる方法」で詳しく

今回は「192.168.0.50」として進める。

wsl2(ubuntu)のIPアドレスを調べる

ubuntuのターミナルで以下コマンドを実行

ip addr

「wsl2(ubuntu)のIPアドレスを調べる方法」で詳しく

今回は「172.22.240.61」として進める。

※ちなみにこのwsl2(ubuntu)側IPアドレスはコロコロ変わる模様www

ポートを指定する

今回はNuxt3なので、「3000」とする。

Windowsにポートフォワーディングの設定をする

コマンドは以下

netsh.exe interface portproxy add v4tov4 listenaddress=<ホストOSのipアドレス> listenport=3000 connectaddress=<wslのipアドレス> connectport=3000

今回のコマンドならば、

netsh.exe interface portproxy add v4tov4 listenaddress=192.168.0.50 listenport=3000 connectaddress=172.22.240.61 connectport=3000

になる。

このコマンドを管理者権限で起動したpowrShellで実行す

他のPCからアクセスできるか、確認する

アクセスできなければファイヤーウォールやウイルススキャンソフトを無効化してから、
再度接続できるかチェックする。

無効化して接続できたら、ファイヤーウォールだ。

設定方法は「そのうち書くリスト」に入れておきます。

設定されているか確認する

netsh.exe interface portproxy show v4tov4

削除する

netsh.exe interface portproxy delete v4tov4 listenport=<対象のポート> listenaddress=<windowsのipアドレス>

上記の設定だと、

netsh.exe interface portproxy delete v4tov4 listenport=3000 listenaddress=192.168.0.50

で消せる