ubuntu under windows subsystem for linux 2 (wsl2) has no internet access

Mohamed Elrashid picture Mohamed Elrashid · Jun 16, 2020 · Viewed 26.5k times · Source

i had an ubuntu under wsl 1 working fine and connecting to the internet

Just by upgrading to wsl2 , I can't ping google.com from bash

but i cand ping if i downgrad to wsl1

here the issue:[WSL2] No network · Issue #4731 · microsoft/WSL


I tried this but not working

Step 1 : open Hyper-V manager as admin

enter image description here

Step 2 : select Virtual Switch Manager From Actions

enter image description here

Step 3 : select WLS

enter image description here

Step 4 : select External Network chose and adapter connect to the internet

enter image description here


my windows ipconfig Ethernet adapter vEthernet (WSL):

Ethernet adapter vEthernet (WSL):

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::30a4:2612:6ee3:2390%142
   IPv4 Address. . . . . . . . . . . : 192.168.0.103
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.0.1

Form ubuntu ping 192.168.0.103

xxxxxxxxx@xxxxxxxxxxx:~$ ping 192.168.0.103
PING 192.168.0.103 (192.168.0.103) 56(84) bytes of data.
From 172.22.131.55 icmp_seq=1 Destination Host Unreachable
From 172.22.131.55 icmp_seq=2 Destination Host Unreachable

Form ubuntu ip route

xxxxxxxxx@xxxxxxxxxxx:~$ ip route
default via 172.22.128.1 dev eth0 
172.22.128.0/20 dev eth0  proto kernel  scope link  src 172.22.131.55

Form ubuntu tried sudo ip route add default via 192.168.0.103

xxxxxxxxx@xxxxxxxxxx:~$ sudo ip route add default via 192.168.0.103
RTNETLINK answers: Network is unreachable

Answer

sgalpha01 picture sgalpha01 · Aug 21, 2020

I was having similar issue. I already tried most of the fixes mentioned in the issues section of its github repo. But, none worked for me permanently.

To temporarily gain access, I created a function which seemed to work for me.

net_activate() {
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
}

I saved it in .bashrc file. Every time I needed to connect, I ran this command.

Yesterday, I was a bit frustrated with this issue and did many things, and now everything is running fine without calling that function.

So, here's the list of thing I did in sequence:

  • Uninstalled all the VPNs I had, and removed their adapters manually.
  • Removed all the Network Adapters (not only VPN, but all listed, including hidden ones) from Device Manager
  • Ran CCleaner and did a custom clean with every check-boxes selected.
  • Did Network Reset. (To do this, simply press "Win + S" and type "network reset")

After restarting my PC, internet in WSL2 was working completely fine.