wsl2 上で Web サーバを立ち上げても、そのままでは Windows 上のブラウザからアクセスできない。 (WSL1 では出来た。)
win+x a
で管理者権限で Powershell を開いて、
$IP = wsl -d Ubuntu-18.04 exec hostname -I; netsh.exe interface portproxy add v4tov4 connectaddress=$IP listenport=1234
を実行する。 Ubuntu-18.04
と listenport=1234
のとこは適宜変更すべし。
Windows を再起動するとクリアされる。 自動化する場合、 $IP は再起動ごとに変化するので、固定値で書き換えてはいけない。
余談
wsl 側から netsh.exe を実行することは出来ますが、 sudo とかしても管理者権限は付与できません。 wsl ターミナル自体を「管理者として実行」すれば、そのターミナル内からは
netsh.exe interface portproxy add v4tov4 connectaddress=$(hostname -I) listenport=1234
とかで実行できる。が、管理者権限つきの wsl ターミナルは危ないのでお勧めしません。