WSL2に外部から 127.0.0.1/8 でアクセスできない
問題
WSLのApacheなどは、127.0.0.1、127.0.0.2、127.0.0.3、……でアクセスできて、開発やテストに便利だったのですが、
WSL2はアクセスができないです。同じようなことはできないのですか?

答え
WSL2のLinuxは127.0.0.1でlocalhostにアクセスできる。内部からは問題ない。
$ curl 127.0.0.1 → ちゃんと返ってくる
WSL2のLinuxが127.0.0.1でlistenしていても、Windowsは ::1 に変換するので、外部からのアクセスはうまくいかないらしい。
以下のような対応が簡単でよいと思われる。
IPv6でアクセスする
ブラウザに入力するアドレスや、curlでアクセスするときなどは以下のようにする
http://[::1]/xxx/yyy
IPアドレスが1個しかないが仕方ない。
localhostでアクセスする
localhostでも到達可能
http://localhost/xxx/yyy
localhostのサブドメインも使える。127.0.0.1/8 と似たような感覚。
VirtualHostを使い分けることもできて便利。
http://test.localhost/ http://dev.localhost/ dev2.localhost dev3.localhost dev4.localhost php5.localhost php7.localhost php8.localhost
コメント