Polecenie działa wewnątrz namespace’u VPN, pojawia się okno Firefoksa, a strona nadal wychodzi zwykłym połączeniem. Konfiguracja routingu prawdopodobnie nie jest pierwszą rzeczą do odbudowania. Sprawdź, czy polecenie utworzyło oczekiwaną instancję przeglądarki, czy przekazało URL tej, która już działała gdzie indziej. Ta różnica wyjaśnia wynik w jednym kroku i oszczędza godzinę pracy z nftables.

Sygnałem jest to, że okno pojawia się natychmiast, bez zimnego startu.

Nowe okno nie jest nową instancją

Aplikacje desktopowe rutynowo ponownie wykorzystują istniejący proces. Launcher w jednym namespace sieciowym nie przenosi już działającego odbiorcy do tego namespace’u, ponieważ odbiorca nigdy nie był częścią uruchomienia. Zachowanie Firefoksa przy zdalnym sterowaniu jest związane z profilami: uruchomienie względem profilu już używanego przekazuje argumenty jego właścicielowi. Nowe okno jest prawdziwe; nowa ścieżka sieciowa nie.

Przeglądanie prywatne i opcja nowego okna nie są mechanizmami izolacji sieci.

Podobnie nie jest nim przełącznik wiersza poleceń, który wpływa tylko na tryb okna. Jeśli profil jest zajęty, żądanie trafia do procesu, który go posiada, a ten proces zachowuje namespace, w którym zaczął.

Wymuś osobną instancję na osobnym profilu

Użyj dedykowanego profilu utworzonego przez obsługiwany przepływ pracy profili przeglądarki i uruchom go jawnie z tym profilem. W kompilacjach Firefoksa, które to obsługują, --new-instance prosi o nową instancję zamiast okna w istniejącej. Sprawdź własne wyjście pomocy zainstalowanej kompilacji, ponieważ dostępne przełączniki różnią się w zależności od wersji.

Nie próbuj otwierać tego samego aktywnego profilu jednocześnie i nie traktuj ostrzeżenia, że profil jest w użyciu, jako polecenia usunięcia plików blokady.

Uruchamiaj przeglądarkę także pod zwykłym użytkownikiem bez uprawnień root. Konfiguracja sieci często wymaga uprawnień administracyjnych i kuszące jest danie przeglądarce tych samych, bo jest częścią tego samego eksperymentu. Przeglądarka graficzna ich nie potrzebuje, a uruchamianie jej jako root tworzy osobną klasę problemów z profilem i uprawnieniami. Trzymaj uprawnienia i ścieżkę sieciową jako dwie niezależne decyzje.

Sprawdź, który proces niesie ruch

W Linuksie namespace sieciowy procesu jest widoczny przez jego dowiązanie do namespace’u. Odczytaj je dla procesu, który twoim zdaniem wysyła żądanie, a potem dla procesu, który naprawdę to robi.

readlink /proc/ACTUAL_PID/ns/net

Przeglądarki uruchamiają kilka procesów, więc tożsamość ma znaczenie: proces treści, który nawiązuje połączenie, może nie być tym, który sprawdziłeś pierwszy. Porównaj dowiązanie z zamierzonym namespace’em i potwierdź świeżym, nieszkodliwym żądaniem, które możesz przypisać jednej instancji. Przypisanie to cały test. Jeśli nie możesz powiedzieć, który proces nawiązał połączenie, nie przetestowałeś namespace’u.

Gdy namespace naprawdę jest niewłaściwy

Czasami launcher naprawdę zawodzi i nowa instancja startuje w złym namespace. Sprawdź usługę lub wrapper, który ją utworzył, ponieważ unit lub wpis pulpitu może utracić namespace, gdy jest ponownie wykonywany przez magistralę sesji. Następnie przetestuj ponownie z powłoki wewnątrz właściwego namespace’u, zanim obwinisz przeglądarkę. Jedna zmienna naraz to jedyny sposób, by pozostało to diagnozowalne.

Współdzielenie ekranu nie współdzieli też resolvera.

Jeśli proces jest we właściwym namespace, a rozwiązywanie nazw nadal zawodzi,zbadaj jego środowisko resolvera jako osobny problem. Żadna inna zmiana routingu nie przeniesie żądania, które zostało przekazane niewłaściwej instancji, zanim jeszcze się zaczęło.

Powiązane artykuły