2021/11/14

ローカルWindowsからWSL2への疎通

以前 port:22 を疎通させる記事 を書いたのとだいたい同じ。

ローカル Windows ブラウザからローカル WSL2 の Web (HTTP:80 及び HTTPS:443) に任意のホスト名で疎通できるようにする。

例題は local.example.com とする。

hosts

Windows の hosts ファイルでホスト名を 127.0.0.1 に向けておく。

127.0.0.1 local.example.com

WSL2 側の IP を取得

ifconfig コマンドで WSL2 側の IP を取得しておく。

$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.11.100.123  netmask 255.255.240.0  broadcast 172.12.234.255

inet 172.11.100.123 この部分が WSL2 側の IP 172.11.100.123 になる。

Windows 側で portfoward する

Windows管理者権限でWindowsシェルを起動

portforward の設定には Windows管理者権限でWindowsシェルを起動する必要がある。

Windowsキー + X を押して、続けて A キーを押してシェルを起動。

portforward の状態確認

$ netsh interface portproxy show all

portforward する

ポート番号とWSL2 の IP を指定して netsh.exe を叩く。

$ netsh.exe interface portproxy add v4tov4 listenport=80 connectaddress=172.11.100.123
$ netsh.exe interface portproxy add v4tov4 listenport=443 connectaddress=172.11.100.123

以下のように portforward できていればOK

$ netsh interface portproxy show all

Listen on ipv4:             Connect to ipv4:

Address         Port        Address         Port
--------------- ----------  --------------- ----------
*               443         172.11.100.123  443
*               80          172.11.100.123  80

ブラウザから確認

WSL2 で Web サーバを起動しておいて、ブラウザにホスト名 (local.example.com) を入れてアクセスしてリクエストがくれば OK

サイト内検索