WSL2にLinuxを2つインストール(UbuntuとAlmaLinux9)し、それぞれにWordpressをインストールして、Ubuntu8080、AlmaLinuxは8880でサービスを開始した。(80はWindowsにインストールしたApacheのWordpress)
Linux上で起動しているIPアドレスを
ip address show eth0 | awk '/inet / {print $2}' | awk -F / '{print $1}'
で調査
Windowsのコマンドプロンプトを管理者権限で起動して
netsh interface portproxy add v4tov4 listenaddress=10.70.1.45 listenport=8080 connectaddress=LinuxのIPアドレス connectport=8080 netsh interface portproxy add v4tov4 listenaddress=10.70.1.45 listenport=8080 connectaddress=LinuxのIPアドレス connectport=8080
を実行してポートフォワーディングを設定
コマンドプロンプトでポートフォワーディングの設定の確認は
netsh interface portproxy show v4tov4
で確認。
Ubuntu、AlmaLinuxともにapacheが起動していることを確認して、
Ubuntu
sudo service apache2 status (起動の場合はstart) sudo service mysql status (起動の場合はstart)
AlmaLinux
sudo systemctl status httpd (起動の場合はstart) sudo systemctl status mysql (起動の場合はstart)
で確認する。
Microsoft Windows [Version 10.0.19045.4412] (c) Microsoft Corporation. All rights reserved. C:\Users\user>netsh interface portproxy show v4tov4 ipv4 をリッスンする: ipv4 に接続する: Address Port Address Port --------------- ---------- --------------- ---------- 10.70.1.45 8080 172.24.4.52 8080 10.70.1.45 8880 172.24.4.52 8880
上記のようにポートフォワーディングはできていて、Apacheも起動していることを確認した。
WSL2を起動しているWindowsマシンで、8080、8880ともに表示されることを確認。
——ここからが問題——
普段使っているWindowsと同じネットワークに存在するiMacから8080はアクセスできるが、8880は拒否される(タイムアウト)。
同じネットワークになので、プロキシは除外するように設定してあるので、何故?何故?
——解決—–
Windows Defender ファイヤーウォールに8880/TCPの受信を許可してあげれば両方ともアクセスが可能になった。
—–えっ—–
Windows Defenderファイヤーウォールの設定を見直したら、なんと、8080もちゃんと許可してあった。WS2をインストールして、Ubuntuだけを動かしたときに設定したらしい。その後、AlmaLinuxを動かして、Wordpressの別テーマを動かして実験していたときに、設定をすればよかったのだが、しばらくWSLを動かしたWindowsでしか確認していなかったためでした。