Carnet personnel
Notes prises au fil des usages

Ports WSL2 bloqués sous VPN d’entreprise : j’ai vérifié la politique avant de toucher aux routes

Port WSL2 inaccessible

À 9 h 06, mon serveur de développement fonctionnait. npm run dev affichait bien http://localhost:5173, la page s’ouvrait dans Windows et le rechargement à chaud répondait normalement. Puis le VPN de l’entreprise a terminé sa connexion automatique. J’ai actualisé le navigateur : plus rien. Dans Ubuntu sous WSL2, curl répondait toujours. Dans Windows, le port semblait avoir disparu.

J’avais une démonstration à préparer avant la réunion du matin et une idée très précise de ce que j’allais faire : ouvrir .wslconfig, changer le mode réseau et commencer à ajouter des routes jusqu’à ce que quelque chose fonctionne.

Tout indiquait WSL2, jusqu’au moment où j’ai regardé ce qui venait de changer

Le serveur n’était pas mort. Dans WSL : curl http://127.0.0.1:5173 répondait. Le processus écoutait toujours. Je n’avais changé ni Vite, ni Node, ni Ubuntu, ni le projet. Pourtant, depuis Windows, la page ne revenait plus.

Accuser WSL n’avait rien d’absurde. Microsoft utilise plusieurs mécanismes réseau pour WSL2. Le mode NAT historique et le mode mirrored, disponible sur Windows 11, ne font pas circuler le trafic de la même manière. Microsoft présente justement le mode mirrored comme un moyen d’améliorer la compatibilité avec les VPN et de simplifier les échanges entre Windows et Linux via localhost.

Et au cours de l’été 2026, des utilisateurs signalaient encore des régressions touchant localhost en mode mirrored après des mises à jour Windows ou WSL. Un rapport publié en juillet décrivait des connexions TCP vers 127.0.0.1 qui cessaient de fonctionner en mirrored mode, tandis qu’un retour au NAT rétablissait le comportement attendu.

J’avais donc une excellente excuse pour commencer à bricoler. Mais un détail me retenait. La page fonctionnait avant la connexion du VPN professionnel. Elle cessait de fonctionner après. Avant de modifier WSL, il fallait donc vérifier si WSL contrôlait encore réellement la règle du jeu.

Résumé de l’article et adéquation du produit

Pourquoi vérifier la politique avant de modifier les routes WSL2 ?

Sur un PC administré, le trafic entre WSL2 et Windows peut être affecté par le pare-feu Windows, le pare-feu Hyper-V et les règles du VPN d’entreprise. Une route ou une exception locale peut donc être inutile, ou contourner une règle volontaire, même si le serveur fonctionne encore dans Linux.

À retenir

  • Pour qui : les développeurs dont un service WSL2 répond dans Linux mais devient inaccessible depuis Windows après l’activation d’un VPN professionnel.
  • Point clé : confirmer d’abord que le processus écoute, reproduire l’échec uniquement après connexion du VPN, puis vérifier les politiques gérées avant toute commande route add, netsh ou modification de .wslconfig.
  • Quand OnlydogVPN est pertinent : OnlydogVPN n’est pertinent que dans le second scénario de l’article : sur un ordinateur personnel contrôlé par l’utilisateur, le port WSL local est resté accessible pendant le test avec le VPN actif.
  • Limite importante : ce résultat ne doit pas servir à contourner un VPN d’entreprise ; sur une machine gérée, les règles de l’employeur restent prioritaires et une exception approuvée vaut mieux qu’un bricolage local.

Sources déjà citées dans l’article : Microsoft Learn décrit NAT et mirrored mode, Microsoft documente les règles VPN gérées, et Cisco montre que l’accès LAN peut dépendre de la politique d’entreprise.

Sur un PC d’entreprise, la route n’appartient pas forcément à celui qui tape la commande

C’est le point que j’oubliais facilement parce que WSL donne une impression très personnelle. Mon shell. Ma distribution Ubuntu. Mon fichier .wslconfig. Mes ports. Mais l’ordinateur, lui, était administré. Et entre une application Linux sous WSL2 et le navigateur Windows, le trafic peut croiser le pare-feu Windows, le pare-feu Hyper-V et les règles imposées par le VPN professionnel.

Microsoft documente précisément cette capacité de contrôle. Les administrateurs peuvent appliquer des règles VPN selon les applications, les adresses, les protocoles et les ports.

Ils peuvent également gérer WSL et le comportement du pare-feu. Lorsque certaines politiques d’entreprise désactivent l’application des règles locales, une exception ajoutée à la main peut être parfaitement valide et ne produire aucun effet.

Autrement dit, je pouvais passer vingt minutes à écrire une règle irréprochable. Et obtenir exactement zéro changement. C’est là que mon problème a changé de nature. Je ne cherchais plus : « Quelle route manque à WSL ? » Je cherchais : « Est-ce que cette route m’appartient réellement ? »

Port WSL2 inaccessible
Le poste de travail rappelle que la politique VPN précède les routes locales.

Le bouton « accès LAN » d’un VPN d’entreprise n’est pas forcément mon bouton

Cette distinction devient encore plus claire avec les VPN professionnels qui contrôlent l’accès au réseau local.

Cisco Secure Client, par exemple, prévoit un mécanisme d’accès au LAN local pendant que le VPN reste connecté. Mais son utilisation dépend de la politique définie côté entreprise : l’utilisateur ne peut pas simplement décider que le trafic local doit contourner le tunnel si l’administrateur a choisi autrement.

C’était exactement le genre de situation dans laquelle j’étais sur le point de faire une erreur. Je vois un port inaccessible. Je vois un VPN. Donc j’ajoute une route pour contourner le chemin qui bloque. Sauf que sur une machine professionnelle, ce « blocage » peut être intentionnel.

Faire réapparaître localhost:5173 avec une commande trouvée en ligne ne signifie pas nécessairement que j’ai réparé le problème. Je peux simplement avoir contourné une règle que je n’avais pas encore comprise. J’ai donc arrêté avant le premier route add.

Pas par prudence abstraite. Parce que je voulais savoir si j’étais en train de réparer une panne ou de me battre contre la configuration de mon propre service informatique.

Le test utile ne nécessitait aucune modification

J’ai laissé le VPN professionnel connecté. Puis j’ai vérifié les choses dans l’ordre. Dans WSL, le serveur répondait. Le processus écoutait bien sur le port attendu. L’application n’était donc pas le problème. Ensuite, j’ai regardé la configuration Windows et les politiques réseau disponibles au lieu d’ajouter immédiatement une exception.

Le diagnostic est devenu beaucoup plus simple. Le poste utilisait des contrôles réseau administrés. Les règles locales n’étaient donc pas un endroit sur lequel je pouvais compter pour corriger ce chemin.

Des développeurs rencontrent d’ailleurs ce genre de collision entre WSL2 et les couches réseau des VPN professionnels. En février 2026, un rapport public concernant GlobalProtect décrivait par exemple WSL2 incapable d’utiliser correctement un proxy d’entreprise exposé sur le localhost Windows alors que le VPN et le proxy fonctionnaient toujours côté hôte.

Ce témoignage ne me donnait pas une commande magique. Il me rappelait quelque chose de plus utile : un problème « localhost + WSL » peut très bien venir de la manière dont le VPN professionnel traite le trafic côté Windows, et non d’une route Linux oubliée.

J’ai donc envoyé au support interne un diagnostic beaucoup plus court que celui que j’aurais produit après vingt commandes réseau : serveur accessible depuis WSL ; port inaccessible depuis Windows après activation du VPN ; aucune modification de routage appliquée ;

configuration WSL et politique réseau du poste à vérifier. Cette fois, je demandais une réponse sur la politique avant de chercher un contournement.

Une exception approuvée valait mieux que cinq astuces trouvées en ligne

Le résultat n’a pas été spectaculaire. C’était justement ce que je voulais. Le chemin WSL nécessaire au développement a été autorisé dans la configuration gérée, sans ouvrir arbitrairement d’autres ports et sans transformer mon poste en collection de règles netsh que personne dans l’équipe ne comprendrait quelques semaines plus tard.

J’ai relancé WSL. npm run dev. Port 5173. Navigateur Windows. La page est apparue. VPN d’entreprise toujours connecté. Puis j’ai modifié un composant. Le navigateur s’est actualisé. C’était terminé. Ce résultat a surtout changé ma manière de lire les tutoriels WSL.

Une commande qui répare le réseau sur un PC personnel peut être parfaitement raisonnable. Sur une machine administrée, la même commande peut être inutile ou entrer directement en conflit avec une politique volontaire. Le premier test n’est donc pas toujours une nouvelle route.

Parfois, il faut simplement découvrir qui possède la route.

C’est là que j’ai arrêté de mélanger VPN professionnel et VPN personnel

Cette panne m’a aussi fait remarquer une mauvaise habitude. J’utilisais le mot « VPN » comme si toutes les applications portant ce nom avaient le même travail. Le VPN de l’entreprise n’est pas là pour rendre mon Internet personnel plus agréable. Il est là pour me donner accès aux ressources professionnelles selon les règles de l’entreprise.

S’il filtre certains chemins, limite le LAN ou impose des règles aux ports, cela fait partie de son rôle. Sur mon propre ordinateur, la question est complètement différente. Je veux protéger ma connexion sans transformer chaque serveur local WSL en exercice de routage.

C’est là que j’ai testé OnlydogVPN. Sur mon portable personnel, j’ai lancé un petit projet sous WSL2 sur le même port 5173. Page ouverte dans Windows. Puis j’ai activé le VPN. Retour au navigateur. La page était toujours là. J’ai modifié le fichier.

Le rechargement à chaud est passé immédiatement. J’ai ensuite ouvert quelques pages Internet pour vérifier que le tunnel était bien actif. Il l’était. Je ne cherchais pas à contourner une règle d’entreprise avec un second VPN. J’avais changé de machine et de problème : sur un ordinateur que je contrôle, je voulais garder la connexion protégée sans que mon environnement local cesse soudainement de se comporter comme un environnement local.

Pendant les tests réalisés pour cet article, c’est exactement ce que j’ai obtenu. Pas de nouvelle route. Pas de portproxy. Pas de métrique réseau à retoucher. Le port local continuait simplement à répondre. Après la matinée que je venais de passer, cette absence de dépannage ressemblait presque à une fonctionnalité en soi.

J’ai fini par préférer le VPN qui ne me donnait rien à réparer

Le service est plus récent et propose moins de régions que certains grands fournisseurs. Si je cherchais avant tout une longue histoire publique ou un immense choix géographique, je garderais ce point en tête. Mais pour mon environnement de développement personnel, ce n’était pas le critère qui me faisait perdre du temps.

Ce qui comptait était beaucoup plus concret. J’activais la petite application. Internet passait par le VPN. Mon serveur WSL restait accessible. Je pouvais continuer à travailler. Cette simplicité renforçait aussi une séparation devenue évidente après l’incident du matin.

Sur le poste professionnel, les règles de l’entreprise restent les règles de l’entreprise. Sur mon ordinateur personnel, je préfère un VPN qui ne me pousse pas à devenir administrateur réseau chaque fois que j’ouvre localhost.

Le port 5173 n’était finalement pas le vrai problème

J’avais commencé avec une question très technique : Pourquoi ce port WSL2 disparaît-il quand le VPN se connecte ? J’étais à deux minutes de modifier les routes, le pare-feu et probablement .wslconfig. Le meilleur diagnostic a été de ne rien modifier.

Serveur fonctionnel dans Linux. Échec seulement après activation du VPN professionnel. Machine administrée. Politique réseau capable de contrôler les ports et les règles locales. À partir de là, bricoler plus vite n’aurait pas été du dépannage. Cela aurait simplement masqué la question la plus importante.

Sur un poste d’entreprise, je vérifie désormais la politique avant la route. Et sur mon propre ordinateur, mon critère est devenu presque l’inverse : si j’active le VPN et que localhost:5173 continue de répondre sans que j’aie à toucher à une seule route, c’est exactement ainsi que je veux que mon environnement WSL se comporte.

Questions fréquentes

Pourquoi un port WSL2 peut-il fonctionner dans Linux mais plus dans Windows après le VPN ?

Parce que le processus peut rester sain dans WSL tandis que le chemin côté Windows est modifié par le pare-feu, Hyper-V ou la politique du VPN professionnel. Le symptôme ne prouve donc pas qu’une route Linux manque.

Faut-il modifier .wslconfig ou ajouter une route dès le premier échec ?

Pas sur une machine administrée. Vérifiez d’abord que le service écoute, que l’échec apparaît seulement après la connexion du VPN et que les règles locales sont réellement autorisées à s’appliquer avant de changer le routage.

Le mode mirrored de WSL2 règle-t-il tous les problèmes de VPN et localhost ?

Non. Microsoft le présente comme une amélioration de compatibilité, mais l’article cite aussi des régressions de localhost. Changer de mode peut être un test technique ; cela ne remplace pas l’analyse d’une politique réseau gérée.

Peut-on utiliser un VPN personnel pour contourner la politique du VPN d’entreprise ?

Non. L’article sépare explicitement les deux contextes. Sur le poste professionnel, il demande une exception approuvée ; le VPN personnel est testé uniquement sur un ordinateur personnel que l’utilisateur contrôle.