WSL - Workaround pour l'accès réseau WSL via un VPN

De PedroWiki

Introduction

WSL2, successeur de WSL1, permet de bénéficier d'un fonctionnement différent (exécution native des distributions Linux et non plus émulation/virtualisation), de fonctionnalités avancées, notamment l'utilisation de Docker. Vous pouvez donc être amené à passer de WSL1 à WSL2 pour des besoins spécifiques.

WSL2 présente un souci lors de l'établissement d'un tunnel VPN: une fois le tunnel établit, on perd l'accès réseau dans sa distribution WSL.

Quelques références à ce bug:

Un workaround efficace est décrit dans la vidéo suivante.

Workaround

Déconnecter le VPN

  • Dans votre client VPN (Cisco AnyConnect, FortiClient, client PulseSecure, profil VPN Windows...), déconnectez vous.
  • Fermez le client VPN.

Lancer une distribution Linux

Si ce n'est pas déjà le cas:

  • si vous l'utilisez, lancez Windows Terminal.
  • ouvrir une distribution Linux (Debian dans mon cas).

Désactiver l'interface réseau WSL

Dans une fenêtre PowerShell en administrateur:

netsh interface set interface "vEthernet (WSL)" disable

Connecter le VPN

  • Lancer votre client VPN (Cisco AnyConnect, FortiClient, client PulseSecure, profil VPN Windows...).
  • Vérifier que vous contactez bien les ressources accessibles uniquement via le VPN.

Réactiver l'interface réseau WSL

Dans une fenêtre PowerShell en administrateur:

netsh interface set interface "vEthernet (WSL)" enable

Tester

Depuis votre distribution WSL favorite:

ping 8.8.8.8
ping www.google.fr

Les 2 commandes doivent fonctionner:

  • accès réseau.
  • résolution DNS.