Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WSL2 network unreachable [closed]

A couple of weeks ago, WSL suddenly could not reach any IP addresses nor resolve any domains. Even internal network IPs are not reachable.

>lsb_release -a
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.1 LTS
Release:        20.04
Codename:       focal

❯ neofetch
            .-/+oossssoo+/-.               klewis@NOTEBOOK-KLEWIS
        `:+ssssssssssssssssss+:`           ----------------------
      -+ssssssssssssssssssyyssss+-         OS: Ubuntu 20.04.1 LTS on Windows 10 x86_64
    .ossssssssssssssssssdMMMNysssso.       Kernel: 5.4.72-microsoft-standard-WSL2
   /ssssssssssshdmmNNmmyNMMMMhssssss/      Uptime: 1 hour, 20 mins
  +ssssssssshmydMMMMMMMNddddyssssssss+     Packages: 1405 (dpkg)
 /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/    Shell: zsh 5.8
.ssssssssdMMMNhsssssssssshNMMMdssssssss.   Theme: Adwaita [GTK3]
+sssshhhyNMMNyssssssssssssyNMMMysssssss+   Icons: Adwaita [GTK3]
ossyNMMMNyMMhsssssssssssssshmmmhssssssso   Terminal: Windows Terminal
ossyNMMMNyMMhsssssssssssssshmmmhssssssso   CPU: Intel i7-7820HK (8) @ 2.903GHz
+sssshhhyNMMNyssssssssssssyNMMMysssssss+   Memory: 968MiB / 5942MiB
.ssssssssdMMMNhsssssssssshNMMMdssssssss.   Font: Cantarell 11 [GTK3]
 /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/
  +sssssssssdmydMMMMMMMMddddyssssssss+
   /ssssssssssshdmNNNNmyNMMMMhssssss/
    .ossssssssssssssssssdMMMNysssso.
      -+sssssssssssssssssyyyssss+-
        `:+ssssssssssssssssss+:`
            .-/+oossssoo+/-.
❯ ifconfig

❯ ccat /etc/resolv.conf
nameserver 9.9.9.9
nameserver 8.8.8.8

❯ ccat /etc/wsl.conf
[user]
default=klewis

# Now make it look like this and save the file when you're done:
[automount]
root = /
options = "metadata"

[network]
generateResolvConf = false
❯ ping 127.0.0.1
ping: connect: Network is unreachable
❯ ping 192.168.0.1
ping: connect: Network is unreachable
❯ ping 8.8.8.8
ping: connect: Network is unreachable
❯ ping google.com
ping: google.com: Temporary failure in name resolution
❯ nslookup google.com 9.9.9.9
net.c:536: probing sendmsg() with IP_TOS=b8 failed: Network is unreachable
;; connection timed out; no servers could be reached

❯ ip route
Error: ipv4: FIB table does not exist.
Dump terminated

❯ ip addr show
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 86:9a:be:53:f0:44 brd ff:ff:ff:ff:ff:ff
3: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 1e:ff:ad:a4:c4:a7 brd ff:ff:ff:ff:ff:ff
4: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/sit 0.0.0.0 brd 0.0.0.0
5: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:15:5d:b7:f4:da brd ff:ff:ff:ff:ff:ff
C:\> ipconfig
Ethernet adapter vEthernet (WSL):

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Hyper-V Virtual Ethernet Adapter #7
   Physical Address. . . . . . . . . : 00-15-5D-E5-0C-1B
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes
   Link-local IPv6 Address . . . . . : fe80::1962:7d4e:a75e:8d62%78(Preferred)
   IPv4 Address. . . . . . . . . . . : 192.168.16.1(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.240.0
   Default Gateway . . . . . . . . . :
   DHCPv6 IAID . . . . . . . . . . . : 1308628317
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-27-B3-1F-34-9C-B6-D0-DD-8C-CF
   DNS Servers . . . . . . . . . . . : fec0:0:0:ffff::1%1
                                       fec0:0:0:ffff::2%1
                                       fec0:0:0:ffff::3%1
   NetBIOS over Tcpip. . . . . . . . : Enabled
>sudo ip route add default via 192.168.16.1
Error: Nexthop has invalid gateway.

I have looked through GH and found solutions that worked for others. Things I have tried:

  • netsh winsock reset
    netsh int ip reset all
    netsh winhttp reset proxy
    ipconfig /flushdns
    
  • deleted Hyper-V virtual adapters and restarting to let Windows rebuild

  • Changed where the Virtual Switch connects to in Hyper-V Virtual Switch Manager from Internal Network to External Network

  • Ensured %TEMP% is not compressed

  • Ensured no file nor folder under %TEMP% were compressed

  • Ensured no firewall was running

  • https://github.com/microsoft/WSL/issues/4926

  • https://github.com/microsoft/WSL/issues/4731

  • turned off Generation of resolv.conf and add gateway, 9.9.9.9 and 8.8.8.8 to resolv.conf

like image 467
Jacrys Avatar asked Feb 23 '21 17:02

Jacrys


2 Answers

Running below command(and accessing the console again) fixed the "Network Unreachable" issue for me

wsl --shutdown
like image 98
Krishnom Avatar answered Sep 30 '22 15:09

Krishnom


I just got this situation resolved on my computer. My background was :

  1. I'm using WSL2
  2. Tried on Ubuntu 16.04 and Ubuntu 20.04
  3. I still can't connect to the internet when on a VPN

Step 1 : Figure out your local Gateway address on Windows

Wireless LAN adapter Wi-Fi:



Connection-specific DNS Suffix  . : home.sercomm
   IPv4 Address. . . . . . . . . . . : 192.168.1.69
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.1.254 <-- this is what we care about

Step 2 : create a /etc/wsl.conf file with the following content

cat /etc/wsl.conf
# Enable DNS – even though these are turned on by default, we’ll specify here just to be explicit.
[network]
generateResolvConf = false

Step 3 : delete the symlink to /run/resolvconf/resolv.conf on /etc/resolv.conf

cd /etc/
sudo rm resolv.conf

Step 4 : also delete /run/resolvconf/resolv.conf, why not?

cd /run
sudo rm resolvconf/resolv.conf

Step 5 : create a custom /etc/resolv.conf that will contain your Gateway address sudo vi /etc/resolv.conf

and paste this (with your Gateway address as seen in step 1)

nameserver 192.168.1.254

Step 6 : Open powershell and restart wsl

wsl --shutdown

Step 7 : ping google.com At this point, assuming your resolv.conf wasn't wiped automatically by the system, and you still preserve the configurations we added on step 5, you should be able to reach the internet.

Thanks, and don't hesitate on contacting me if you have an issue.

like image 29
Juan Carlos Martinez Carrillo Avatar answered Sep 30 '22 13:09

Juan Carlos Martinez Carrillo