Bored of having to check for your WSL instance IP everytime you reboot your computer? I found the solution!
I recently published an article on how to find the IP of a WSL instance. At the time, something I did not know and just figured out is that the IP is dynamic. Meaning it changes everytime you restart your computer. Maybe even when you stop/start your instance, too lazy to check. Let me know.
This messes with your configuration. For example, I have a GUI app to play with my DB (for the curious, I use DBeaver). I configured the DB connections like in the image:
Now, it works on setting it up. But then, you have to change this every time you reboot your computer.
While looking for a way to assigned fixed IP addresses to WSL instances, I figured that there is currently no way to do this.
After more readings, I found out that setting the IP address in the
hosts file would make things easier. You configure your connections with a custom domain, say
wsl.local, and now, you have only one place where to update the IP address and all your apps are good to go.
But that's still tedious, and someone worked on that problem. Here comes WSL2Host.
WSL2Host installs itself as a service. Every time a WSL instance launches, it updates the
hosts file with the IP of the instance and assign it a domain based on the name of the distribution the WSL instance is running. For example, "Ubuntu-18.04" becomes
And that's all! It's a great piece of software! Read the installation instructions and you'll be good2go.
When I set it up, I had an issue where the service was registered but was not running at startup. I could run the service manually tho but that's not the purpose of it.
After watching at the system logs, I found an explicit error message (🙏) that stated my current user I was logged in with did not have the rights to run such a service. To fix that, look for the service in Services, it's called WSL2Host.
Access to its properties via right click, go to the Connexion tab, and make sure the service log on as Local System account.
You should be good2go from there.
If you really want to use the local user, it's totally doable. It's just a bit more complex but we can make it!
The problem you might have is that even tho you set up the user correctly, this user might have the appropriate security policy so we have to change this.
Start > Administrative Tools > Local Security Policy > Local Policies > User Rights Assignment > Log on as a service > Search for users or groups > Advanced > Find now > [Select your proper username] > OK > OK > Apply > OK
Steps in image:
If the security policies are OK but you still have issues running the service as a user, you might have set a wrong password and/or user.
To fix this, steps are:
Services App > Right Click WSL2 Host > Properties > Log On Tab > Browse > Advanced > Find Now > [Select your proper username] > Ok everything that comes up
For further details, check the repos for issues.
Feel free to reach me: @adriengiboire