SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

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

関連するメモ

コメント(1)

メッチャクチャ遅い仮想の開発環境の改善2 – NBK-Dev 2022年10月13日 15:05

[…] で、「んんん・・・ホスト名どうしようかなぁ・・・」となんとな~くダラダラとネットサーフィンしていたら、localhostのサブドメインでいいじゃん!とこちらのサイトで教えてもらいました。 さっそくApacheとNginxのヴァーチャルホストを書き換えて、WSLを再起動したところ・・・・バッチリでした! […]