• Systèmes
  • Windows Sous-système Linux (WSL)

Sous système Linux: LE WSL

Présentation du WSL

Désormais, je n'ai plus besoin d'un dualboot contraignant ou encore d'une machine virtuelle comme vmware ou VirtualBox que je trouve encombrantes, le WSL révolutionne mon quotidien! 🎉

Ce qui me plaît

En GROS ça sert à lancer un système d'exploitation en parallèlle de Windows et de manière hyper bien intégré (le WSL2 est en réalité une machine virtuelle légère), voici une liste non exhaustive de ce que je touve cool:

  1. Le réseau et les fichiers sont partagés et accessibles entre l'hôte Windows et le WSL,
  2. L'espace pris par l'environnement WSL est donc flexible,
  3. Pleins de distributions Linux (Ubuntu, Kali, ...) sont dispos mais aussi de l'OSX (MacOS),
  4. Environnement de développement plus proche des conditions réelles de déploiement (soyons honnêtes, personne ne fait de mise en prod sur un Windows Server 😅),

Installation

Il suffit de suivre la documentation officielle de Microsoft pour installer le WSL2.

En résumé, il faut:

  1. Activer le sous-système dans Windows 10 ou 11,
  2. Installer une distribution Linux (Ubuntu, Kali, ...) depuis le Microsoft Store

Problèmes

Le réseau

Si vous souhaitez accéder à un service qui tourne en WSL, depuis un appareil de votre réseau local, il faudra configurer le réseau sur la machine hôte pour permettre la communication des ports entre WSL et le réseau LAN du PC hôte.

  1. Récupérer l'adresse IP de la machine Linux (avec ifconfig par exemple),
  2. Configurer une règle de redirection sur la machine hote :
netsh interface portproxy add v4tov4 listenport=<port d'écoute sur la machine Windows 10/11> listenaddress=0.0.0.0 connectport=<port de destination sur la machine Linux> connectaddress=<adresse IP machine Linux>
  1. Autoriser le flux dans le parefeu Windows :
New-NetFireWallRule -DisplayName 'WSL 2' -Direction Outbound -LocalPort "3390" -Action Allow -Protocol TCP
New-NetFireWallRule -DisplayName 'WSL 2' -Direction Inbound -LocalPort "3390" -Action Allow -Protocol TCP
  1. Vérifier la configuration avec la commande suivante :
netsh interface portproxy show v4tov4

Pour en savoir plus ou avoir plus de détails, je vous conseille ce lien.

Last updated on November 4, 2022