How To Revive Lost Network Connection in WSL

The Short Answer

Restart the "Host Network Service" Windows service.

How to Restart Host Network Service

This can be done in a couple of ways. It's quite easy to restart the service via the Windows UI. From Windows Start menu, choose Services, scroll to Host Network Service, right-click and choose "Restart" from the context menu

Or... you can restart the service from the Windows command line. From a Command Prompt that's running as Administrator, run the following command:

net stop hns && net start hns

Background

I've found that network access sometimes fails within my Ubuntu on Windows environment. This not only makes it so I can't initiate network-dependent commands, such a git pull; I also can't make calls via ngrok into the Docker environment running on Ubuntu on Windows. The first time this happened, I was stumped. My Windows applications all had Internet access, but from within WSL (Windows Subsystem for Linux), I couldn't see the outside world. I rebooted my laptop and the problem went away.

The second time this happened, I realized I needed a less obtrusive solution. I did some searching and discovered that this is typically due to a failure in the Host Network Service, and that simply restarting the service clears it up. I tried it, and it worked.

If you just searched for something like "wsl cannot connect to internet" or "I can't ping internet hosts from wsl" and landed here, I hope this helps.

If you determine the root cause of these occasional network issues, comment to let us all know!

comments powered by Disqus