Outils pour utilisateurs

Outils du site


articles:acceder_a_un_port_ou_une_application_executee_dans_wsl2

Ceci est une ancienne révision du document !


Accéder à un port ou une application exécutée dans WSL2

Introduction

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.

Identification des adresses IP

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

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.

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 2 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
articles/acceder_a_un_port_ou_une_application_executee_dans_wsl2.1731168928.txt.gz · Dernière modification : 2024/11/09 17:15 de frater