wsl2 does not (yet?) support IPv6. This means when a service like apache opens a listening port on the IPv6 ANY interface, these connections are not forwarded through the WSL2 system. Only IPv4 listening addresses are forwarded. I add this to my .bashrc currently which works around the issue by disabling ipv6. The default WSL2 kernel has IPv6 enabled, but the default WSL2 networking does not route IPv6. I don't know why this is. This is a hack, but it's a working hack.
grep -q 1 /proc/sys/net/ipv6/conf/all/disable_ipv6 || sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
grep -q 1 /proc/sys/net/ipv6/conf/default/disable_ipv6 || sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
Feel free to adapt to your root startup. This could get added to /etc/sysctl.d/something.conf and then startup sysctl on "boot" for a more complete solution that would handle other sysctl settings.
wsl2 does not (yet?) support IPv6. This means when a service like apache opens a listening port on the IPv6 ANY interface, these connections are not forwarded through the WSL2 system. Only IPv4 listening addresses are forwarded. I add this to my .bashrc currently which works around the issue by disabling ipv6. The default WSL2 kernel has IPv6 enabled, but the default WSL2 networking does not route IPv6. I don't know why this is. This is a hack, but it's a working hack.
Feel free to adapt to your root startup. This could get added to /etc/sysctl.d/something.conf and then startup sysctl on "boot" for a more complete solution that would handle other sysctl settings.