| Termin | Definicja |
|---|---|
| localhost nie działa między WSL a Windows | Localhost niedziałający między WSL a Windows w starszych wersjach WSL1 wymagał ręcznego przekierowania portów — WSL2 domyślnie współdzieli localhost z hostem Windows. Co oznacza problem „localhost nie działa między WSL a Windows”Określenie to opisuje sytuację, w której aplikacja uruchomiona w środowisku Windows Subsystem for Linux nie może połączyć się z usługą działającą w systemie Windows przez adres W WSL1 procesy linuksowe korzystają znacznie bliżej ze stosu sieciowego Windows, natomiast WSL2 działa w lekkiej maszynie wirtualnej z własnym interfejsem sieciowym. W praktyce wpływa to na kierunek połączenia. Usługa uruchomiona w WSL2 może nie być dostępna z Windows przez Problem nie musi oznaczać awarii samej aplikacji. Często działa ona poprawnie, ale pozostaje dostępna tylko pod adresem Jak działa komunikacja WSL2 z systemem WindowsNajpierw należy rozdzielić dwa kierunki ruchu: Windows do WSL oraz WSL do Windows. Jeżeli serwer deweloperski działa w WSL2, a przeglądarka jest uruchomiona w Windows, dostęp pod W odwrotnym kierunku, gdy program w WSL2 ma połączyć się z usługą uruchomioną w Windows, Przy diagnozie warto ustalić, na jakim adresie nasłuchuje usługa. Serwer przypięty do Pomocne jest sprawdzenie stanu WSL poleceniami administracyjnymi, informacji o adresach interfejsów, mapowania portów i reguł zapory. Należy też uwzględnić plik konfiguracyjny WSL oraz ustawienia związane z integracją sieciową. W przypadku usług uruchamianych w Dockerze dodatkową warstwę stanowi publikowanie portu kontenera, ponieważ port dostępny w kontenerze nie musi być automatycznie dostępny na hoście Windows ani bezpośrednio w dystrybucji WSL. Najczęstsze przyczyny niedostępnego localhostJednym z typowych powodów jest błędny adres bindowania. Framework aplikacji może domyślnie uruchamiać serwer wyłącznie na Częstym błędem jest również pomylenie portu aplikacji z portem wystawionym przez narzędzie uruchomieniowe. Program może działać na jednym porcie, ale konfiguracja przekierowania, plik projektu, kontener lub skrypt startowy może udostępniać inny. Warto odczytać port bezpośrednio z komunikatu startowego aplikacji i porównać go z wynikiem testu połączenia. Sam fakt, że proces jest widoczny na liście uruchomionych zadań, nie potwierdza jeszcze, że nasłuchuje on na właściwym interfejsie. Przyczyną może być zapora Windows, oprogramowanie ochronne, firmowa polityka sieciowa albo filtr działający w dystrybucji Linux. Zdarza się także, że usługa kończy pracę po uruchomieniu, ale terminal pozostawia komunikat sugerujący poprawny start. W takim przypadku należy sprawdzić logi aplikacji, kod zakończenia procesu i próbę połączenia z tego samego środowiska, w którym działa serwer. Jeżeli połączenie lokalne w WSL działa, a połączenie z Windows nie, poszukiwania należy skierować w stronę przekierowania portów, interfejsu nasłuchu i zapory. Osobną grupę problemów stanowią zmiany po aktualizacji Windows, WSL lub dystrybucji Linux. Mogą one zmienić tryb sieciowy, sposób rozwiązywania nazw albo zachowanie automatycznego przekazywania portów. Warto sprawdzić wersję WSL, stan używanej dystrybucji, ustawienia integracji oraz to, czy problem występuje po ponownym uruchomieniu systemu. Należy unikać trwałego wpisywania przypadkowego adresu IP do konfiguracji aplikacji bez ustalenia, czy adres nie będzie się zmieniał. Kiedy trzeba przekazać urządzenie do naprawy - localhost nie działa między WSL a WindowsZgłoszenie do serwisu jest uzasadnione, gdy po sprawdzeniu procesu, portu i adresu nasłuchu nadal nie można ustalić, na którym etapie połączenie jest blokowane. Dotyczy to zwłaszcza sytuacji, w której jednocześnie używane są WSL2, kontenery, kilka dystrybucji Linux, lokalne serwery deweloperskie oraz zapora systemowa. Nieprawidłowa zmiana ustawień sieciowych może przy tym zakłócić działanie innych programów, dlatego bezpieczniej jest poprzedzić ją analizą konfiguracji i kopią istotnych plików. W Warszawie takie przypadki można przekazać do „Warszawskiego Pogotowia Komputerowego 24/7”, gdzie problem może zostać przeanalizowany razem z ustawieniami Windows, dystrybucji WSL, usług i reguł sieciowych. Podczas zgłoszenia warto opisać, w którym kierunku ma działać połączenie, jaki port jest używany, z jakiego środowiska wykonywany jest test oraz jaki komunikat błędu się pojawia. Pomocne będzie również wskazanie, czy usługa działa bezpośrednio w Windows, w WSL, czy wewnątrz kontenera. Przed przekazaniem komputera można przygotować kopię konfiguracji projektu, listę używanych poleceń i wynik prostych testów połączenia, bez udostępniania haseł ani kluczy dostępowych. Takie dane ułatwiają odtworzenie problemu i odróżnienie awarii aplikacji od błędu warstwy sieciowej. Po przywróceniu komunikacji należy jeszcze sprawdzić działanie po ponownym uruchomieniu Windows, WSL i aplikacji, ponieważ rozwiązanie zależne od chwilowego adresu lub ręcznie uruchomionego przekierowania może nie przetrwać restartu. |