'ubuntu under windows subsystem for linux 2 (wsl2) has no internet access
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
Step 2 : select Virtual Switch Manager From Actions
Step 3 : select WLS
Step 4 : select External Network chose and adapter connect to the internet
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
Solution 1:[1]
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.
Solution 2:[2]
##This a a hack (hot fix) not a permanent solution
Inside ubuntu i had to :
- add manual ip assignment to network adapter
- My router Dynamic ip rang 100-200
- My ip address is 192.168.0.103/255.255.255.0
- My ip address is 192.168.0.103/24
note you have to enable external network in the wsl hyper-v network virtual switch (see step 1 to 4 in the question )
bash commands :
sudo ip a flush dev eth0
sudo ip a add 192.168.0.5/24 dev eth0
sudo ip r add default via 192.168.0.1
you have to repeat theses command every restart of the vm (or you can script it)
##Ref. :
Note : there is about 14 issues open on the subject of wsl networking so i don't suggest enabling it (on 2020-06-17 maybe it will be better after the issues close)
WSL IP address & Subnet is never deterministic (Constantly changing) · Issue #4467 · microsoft/WSL
[WSL 2] NIC Bridge mode ? (Has TCP Workaround?) · Issue #4150 · microsoft/WSL
Questions: implementation of WSL 2 networking · Issue #4346 · microsoft/WSL
[WSL 2] NIC Bridge mode ? (Has TCP Workaround?) · Issue #4150 · microsoft/WSL
[WSL 2] NIC Bridge mode ? (Has TCP Workaround?) · Issue #4150 · microsoft/WSL
shayne/go-wsl2-host: Automatically update your Windows hosts file with the WSL2 VM IP address
Can not connect to internet in WSL 2 · Issue #4275 · microsoft/WSL
[WSL 2] NIC Bridge mode ? (Has TCP Workaround?) · Issue #4150 · microsoft/WSL
Missing network connection in WSL2 after last (windows) update · Issue #5414 · microsoft/WSL
No internet connectivity from WSL2/Ubuntu · Issue #4926 · microsoft/WSL
shayne/go-wsl2-host: Automatically update your Windows hosts file with the WSL2 VM IP address
Solution 3:[3]
I had the same issue of losing internet access in WSL (running Ubuntu 20.04) when converting it to version 2. Reverting to version 1 promptly restored internet. Converting back and forth switched internet on and off consistently. Internet access outside the WSL was always fine.
Trying to repair the Ubuntu installation didn't solve the issue. Neither did meddling with network interface settings or rebooting my PC.
I then followed @sgalpha01's suggestion to run CCleaner and that did the trick:
- A Custom Clean with all boxes (like a 100) checked except for (the rather impacting / time consuming):
- Windows Explorer/Network passwords
- System/Start Menu Shortcuts
- System/Desktop Shortcuts
- Advanced/Wipe Free Space
- Google Chrome/Saved Passwords
- A Registry Clean-up
- Removal of a couple of obsolete and unrelated (I think) programs.
After that internet access in the WSL was restored without rebooting the PC.
Many thanks to @sgalpha01! For anyone trying this fix: since no reboot seems to be required for the internet to reappear, you can try out Custom Clean with more selective settings until internet (hopefully) returns.
Solution 4:[4]
Well referring to the post by @shortski on Dec 19 '20 higher up on this screen...CC Cleaner worked on first attempt for me ! I only had a few checkboxes ticked. The only one I found logically could have an impact would be:
- System: DNS Cache
Anyway here is the single attempt CC cleanup list I used:
System: All except:
- Windows Error Reporting
- Start Menu Shortcuts
- Desktop Shortcuts
Advanced:
- Environment Path
- Custom Files and Folders
That was it.
Happy sudo apt update:ing !
Solution 5:[5]
I tried many of the other suggestions here, but only the following worked for me (doing a networking reset, and rebooting Windows 11):
github.com/microsoft/WSL/issues/4275#issuecomment-846553905
wsl --shutdown
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
netsh winsock reset
shutdown /r
Solution 6:[6]
The simple procedure that works is to modify the c:\users\%USERPROFILE%\.wslconfig file to be:
[wsl2]
memory=8GB
**swapFile=0**
swap=0
For some reason someone at microsoft changed the name of the swap config parameter. Stragely, when swapfile is defined. network works like a whistle.
Microsoft: Please decouple swalfile from network. And consider supporting both names for the swap.
Solution 7:[7]
I found a permanent solution:
1 - Under Hyper-V, Set the "wsl" virtual switch to "bridge"
2 - Under "Control Panel\Network and Internet\Network Connections", set the "wsl" network interface to "DHCP" and automatic DNS
This link provide general guidance but it is not specific to WSL : following something like : https://www.veeam.com/blog/how-to-configure-hyper-v-virtual-switch.html
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | sgalpha01 |
| Solution 2 | OneCricketeer |
| Solution 3 | |
| Solution 4 | Gunnar Forsgren - Mobimation |
| Solution 5 | Sean McCarthy |
| Solution 6 | George Z. |
| Solution 7 | Charif Mahmoudi |





