I started using WSL from version 2, so the following tips may only work for version 2.

⚡ LxRunOffline

LxRunOffline is a command line tool to manage WSL instances. It also can install many Linux distributions that are not listed in Microsoft Store.

I also have written a script wrapper to manage the WSL instances.

⚡ Use Windows Executable

WSL can use Windows executable directly. For example

sudo ln -snf "$(which git.exe)" /usr/bin

This allows WSL to use the git.exe in Windows as git.

Another example is using powershell to get the host IP:

powershell.exe -NoProfile -Command "(Get-NetIPAddress -InterfaceAlias Wi-Fi -AddressFamily IPv4).IPAddress | Write-Host -NoNewLine"

⚡ Port Forward

The ports listened on 0.0.0.0 in WSL2 are automatically forwarded to Windows.

For example, running python3 -m http.server in WSL, the browser in Windows can open http://localhost:8000 directly.

But this does not work reversely. WSL instance cannot access Windows ports via localhost nor 127.0.0.1. An workaround is using the public IP of the Windows.