WSL2 ne peut pas accéder à Internet sur Windows 11

J’ai une installation fraîche de Windows 11 avec Ubuntu 20.04 installé dans WSL2.

Quand j’essaie d’effectuer une mise à jour sudo apt update ou même ping google.com, j’obtiens

Temporary failure resolving ‘archive.ubuntu.com

et

Temporary failure in name resolution

comme erreurs respectivement.

J’ai essayé :

Autoriser WSL à travers le pare-feu Windows en utilisant “autoriser une application à travers le pare-feu” et en sélectionnant C:\Windows\System32\wsl.exe

Ajouter une règle entrante dans le pare-feu pour le port 3390

Définir le profil réseau sur “privé” (bien que je préférerais le garder public s’il y a un moyen de garder WSL fonctionnel)

Exécuter New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow trouvé via une recherche Google

MODIFICATION : À ce stade, j’ai essayé tous les résultats Google et toujours aucune solution. r/windows11 ne me laisse pas poster sauf le lundi (stupide). J’ai également essayé de réinstaller Ubuntu sur WSL en vain.

Il y a plus d’une cause à ce problème.

L’article
WSL2 Network Issues and Win 10 Fast Start-Up
conseille de désactiver le Démarrage rapide dans Windows :

Une autre
explication
est que le changement de réseau (comme entre le travail et
la maison) perturbe WSL.
La solution est d’exécuter un fichier .bat contenant ce qui suit :

wsl --shutdown
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
netsh winsock reset
shutdown /r

Encore une autre
explication
est que Windows génère automatiquement un fichier resolv.conf avec
un mauvais serveur de noms.

Pour empêcher cela, exécutez les commandes suivantes :

sudo rm /etc/resolv.conf
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
sudo bash -c 'echo "[network]" > /etc/wsl.conf'
sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf'
sudo chattr +i /etc/resolv.conf