Laptop serwuje stronę pod localhost, telefon dołącza do tej samej sieci VPN, a przeglądarka na telefonie zgłasza, że witryna jest nieosiągalna. Z tunelem wciąż nie ma nic złego, bo tunel tylko dostarcza pakiety. Serwer deweloperski przypisany do interfejsu loopback nigdy nie przyjmuje połączenia zaadresowanego gdzie indziej, więc pierwszym miejscem do sprawdzenia jest gniazdo nasłuchujące, a nie VPN.

Przejdź kolejno przez gniazdo, ustawienie przypisania, regułę zapory i adres URL.

Gniazdo odpowiada na węższe pytanie

Nasłuch utworzony na 127.0.0.1 przyjmuje ruch z samej maszyny i odrzuca wszystko, co przychodzi na inny adres. Nasłuch na adresie wieloznacznym przyjmuje na każdym lokalnym interfejsie, w tym na interfejsie VPN, co jest szersze, niż potrzebuje większość konfiguracji deweloperskich. Nasłuch przypisany do jednego konkretnego adresu VPN to najwęższa użyteczna opcja i działa tylko wtedy, gdy ten adres istnieje.

Wynikają z tego dwie pułapki nazewnicze. W przeglądarce telefonu localhost oznacza telefon, a nie laptop. Adres wieloznaczny to wartość przypisania, a nie coś do wpisania w adres URL. Kto testuje z którymkolwiek z nich, zgłosi awarię, która nigdy nie dotyczyła sieci.

IPv6 dodaje trzeci przypadek, ponieważ gniazdo może przyjmować IPv4 i IPv6 w zależności od opcji, które łatwo przeoczyć. Przeczytaj rodzinę adresów na liście. Wpis wieloznaczny dla jednej rodziny nie opisuje drugiej.

Przeczytaj adres nasłuchu

Sprawdź gniazdo, zanim zmienisz konfigurację. Adres lokalny, port i proces właściciela razem wskazują, czy serwer jest w ogóle osiągalny z sieci VPN.

Get-NetTCPConnection -State Listen -LocalPort 8080 | Select-Object LocalAddress,LocalPort,OwningProcess
Get-Process -Id (Get-NetTCPConnection -State Listen -LocalPort 8080).OwningProcess
ipconfig | Select-String -Pattern 'IPv4'
Get-NetFirewallRule -DisplayName '*8080*' | Format-Table DisplayName,Enabled,Profile,Direction,Action

Lokalny adres 127.0.0.1 rozstrzyga sprawę: żadna zmiana zapory nie pomoże, bo aplikacja nie nasłuchuje na interfejsie VPN. Adres wieloznaczny lub adres VPN oznacza, że gniazdo jest w porządku i obowiązuje następna granica.

Potwierdź też proces właściciela, ponieważ niezwiązana usługa na popularnym porcie może sprawić, że tabela wygląda poprawnie, podczas gdy zamierzony serwer nigdy nie wystartował. Dopasuj ścieżkę pliku wykonywalnego, nie tylko nazwę. Proces pozostały po wcześniejszym uruchomieniu to częsty oszust.

Zmień przypisanie przez aplikację

Użyj udokumentowanej przez framework opcji adresu nasłuchu i uruchom proces ponownie. Jeśli laptop ma prywatny adres 10.77.0.1, adres URL telefonu zmienia się na http://10.77.0.1:8080/ i ten adres musi być trasowany przez VPN; nic więcej w konfiguracji się nie zmienia.

Nie dodawaj dowolnych adresów do Windows ani nie zmieniaj bramy, aby wymusić przypisanie. Te zmiany przeżywają sesję debugowania i zaskakują następną osobę. Serwer uruchomiony, zanim adres VPN istnieje, może też nie zdołać się przypisać, więc kolejność startu ma znaczenie dla tymczasowego interfejsu. Daj mu ponowną próbę albo uruchom go po tunelu. Błąd przypisania przy starcie wygląda następnego ranka dokładnie jak problem z zaporą.

W przypadku HTTPS zachowaj nazwę hosta usługi i walidację certyfikatu bez zmian. Ostrzeżenie o certyfikacie na surowym adresie to problem nazewniczy, a nie krok do kliknięcia, a prywatny DNS musi zgadzać się z wybranym nasłuchem.

Otwórz jedną regułę, nie całą sieć

Gdy gniazdo przyjmuje na adresie VPN, zapora decyduje, czy żądanie dotrze. Ogranicz regułę do tej aplikacji, tego protokołu, tego portu lokalnego i autoryzowanego zdalnego źródła, i potwierdź, który profil jest aktywny na adapterze VPN.

Użyj adresu źródłowego, który Windows faktycznie widzi, łącznie z każdym tłumaczeniem wykonanym przez bramę, ponieważ reguła napisana dla oryginalnego adresu klienta nie dopasuje przetłumaczonego.

Strona, która się ładuje i pokazuje błąd aplikacji, to postęp: odrzucenie HTTP to inna awaria niż brak połączenia TCP, a następne dochodzenie należy do własnej polityki dostępu aplikacji, a nie do sieci.

Zakończ, żądając strony z docelowego telefonu i potwierdzając, że wykluczone urządzenie nadal nie może jej osiągnąć. Działający nasłuch z regułą, która wpuszcza wszystko, to nie ten sam wynik.

Powiązane artykuły