Outils pour utilisateurs

Outils du site


articles:acceder_a_un_port_ou_une_application_executee_dans_wsl2

WSL - Accéder à un port ou une application

Comment accéder à une application hébergé dans une VM WSL?

Par défaut, WSL2 utilise un mode NAT pour son accès réseau et ne présente donc pas les VM sur le LAN, il n'est donc pas possible d'accéder depuis le LAN à une application hébergée sous WSL2.

on peut évidement modifier profondément sa configuration Hyper-V pour avoir un réseau wsl en mode bridge, mais cela demande une configuration spécifique et qui n'est ni supportée ni facile.

il est possible d'avoir un mode miroir sous Windows 11; mais ce n'est pas le sujet.

Introduction : WSL c'est quoi ?

WSL signifie Windows Subsystem for Linux.

C'est un logiciel qui permet d'exécuter des applications Linux directement sur le système d'exploitation Windows, sans avoir besoin de devoir gérer la virtualisation ou un double-boot.

Voici quelques points clés à retenir sur WSL :

  1. Compatibilité : WSL permet aux utilisateurs d'utiliser une variété d'applications et de systèmes d'exploitation Linux sur leur ordinateur Windows.
  2. Performance : Bien que WSL utilise le système d'exploitation Windows sous-jacent, il offre des performances comparables à un environnement Linux natif.
  3. Intégration : Les applications Linux exécutées avec WSL peuvent interagir directement avec les fichiers (via /mnt/) et les services de Windows.
  4. Mises à jour : Les mises à jour du système d'exploitation Linux sont gérées séparément des mises à jour de Windows, mais elles bénéficient des dernières fonctionnalités et corrections de sécurité.
  5. Modes de réseau : WSL propose différents modes de réseau pour améliorer la compatibilité et les performances, notamment le mode “mirrored” qui offre un meilleur support de l'IPv6 et d'autres fonctionnalités.
  6. Installation : L'installation de WSL est simple et peut être faite via PowerShell ou le Microsoft Store.
  7. Utilisation : Les utilisateurs peuvent installer des distributions Linux comme Ubuntu, Debian, Fedora, etc., et les utiliser comme s'ils étaient installées directement sur Windows.

WSL est particulièrement utile pour les développeurs qui ont besoin d'utiliser des outils et des environnements de développement Linux sans quitter leur système d'exploitation Windows.

Mode de réseau par défaut : NAT

Accès des applications réseau Linux depuis Windows (localhost)

  • Les applications réseau peuvent être accessibles via localhost comme dans un environnement normal.

Accès des applications réseau Windows depuis Linux (adresse IP hôte)

  • Pour accéder à une application réseau sur Windows depuis Linux, utiliser l'adresse IP de l'hôte.

A cause de la technologie réseau utilisée (NAT); Il est impossible d'accéder à une application WSL depuis le LAN… sauf si…

Identification des adresses IP

Avant de commencer il convient d'identifier l'adresse IP de la distribution que l'on désire utiliser; il existe deux scénarios principaux :

Scénario 1

À partir du point de vue de l'hôte Windows, obtenir l'adresse IP d'une distribution Linux WSL2 afin que le programme sur l'hôte puisse se connecter à un serveur dans la distribution.

PS C:\Users\Frater> wsl -d debian hostname -I
172.25.212.151

le paramètre -d permet de choisir la distribution que l'on désire interroger.

le paramètre -I (en majuscule) demande l'IP de la distribution.

Scénario 2

À partir du point de vue d'une distribution Linux WSL2, obtenir l'adresse IP de l'hôte Windows.

frater@SUPREMAE:~$ ip a | grep eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1492 qdisc mq state UP group default qlen 1000
    inet 172.25.212.151/20 brd 172.25.223.255 scope global eth0
8: veth0db27a5@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-9e2c87c63ebd state UP group default

Connexion via des adresses IP distantes

Les connexions via des adresses IP distantes sont traitées comme étant du LAN.

Assurez-vous que votre application peut accepter les connexions LAN (par exemple, en liant à 0.0.0.0 au lieu de 127.0.0.1).

Accès d'une distribution WSL depuis le LAN

WSL 1

Les applications peuvent être accessibles sur le LAN si l'ordinateur est configuré pour cela.

WSL 2

Par défaut, les applications ne sont pas accessibles sur le LAN. Il faut utiliser des commandes comme netsh interface portproxy pour configurer un port proxy.

netsh interface portproxy add v4tov4 listenport=<port-to-listen> listenaddress=0.0.0.0 connectport=<port-to-forward> connectaddress=<forward-to-this-IP-address>

Exemples

Pour permettre à des clients réseau d'acceder a un serveur nginx hébergé sous WSL, dans un powershell “Admin”:

PS C:\Users\Frater> wsl -d debian hostname -I
172.25.212.151
PS C:\Users\Frater> netsh interface portproxy add v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=80 connectaddress=172.25.212.151

PS C:\Users\Frater> netsh interface portproxy add v4tov4 listenport=443 listenaddress=0.0.0.0 connectport=443 connectaddress=172.25.212.151

Notes finales

Il convient de se rappeler que par défaut Windows (ou son antivirus) dispose d'un Firewall qui va bloquer les accès depuis le LAN; et que par conséquent, il faudra adapter ses règles pour autoriser la connection distantes aux ports en question.

articles/acceder_a_un_port_ou_une_application_executee_dans_wsl2.txt · Dernière modification : 2024/11/29 19:08 de frater