Twoja aplikacja wskazuje na proxy B, ale została uruchomiona przez opakowanie skonfigurowane dla proxy A. Które wyjście widzi witryna? Odpowiedź zależy od tego, które połączenie przechwytuje opakowanie.

W prostym zagnieżdżonym układzie aplikacja najpierw próbuje połączyć się z B. Opakowanie przechwytuje to połączenie i przeprowadza je przez A. Następnie aplikacja mówi protokołem proxy B przez powstały strumień, a B wykonuje końcowe połączenie z witryną.

application → wrapper proxy A → application proxy B → website

Witryna widzi końcowe połączenie wychodzące B. B widzi połączenie przychodzące przez A. Różni się to od sytuacji, gdy opakowanie po cichu nadpisuje własne ustawienie proxy aplikacji.

Prosty diagram ma warunki

Reguły pomijania, nieobsługiwane wywołania gniazd, istniejące procesy i model przechwytywania każdego produktu mogą zmienić ścieżkę. Niektóre opakowania mogą wykluczać własne proxy lub wybrane cele. Nie zakładaj, że każda para narzędzi łączy się tak samo.

Opis proxychains-ng wyjaśnia jego podejście do przechwytywania i ograniczenia. Program korzystający z natywnej obsługi proxy nadal nawiązuje połączenie sieciowe z tym proxy, co jest jednym z kandydatów do przechwycenia.

Aby świadomie zbudować łańcuch nieuwierzytelnionych publicznych punktów końcowych, lista darmowych proxy oferuje kandydatów, których protokoły muszą pasować do każdego narzędzia. W przypadku nieoczekiwanego wyjścia zanotuj osobno trzy adresy: punkt końcowy wybrany przez aplikację, punkt końcowy wybrany przez opakowanie i wynik widziany przez witrynę. Patrzenie tylko na ustawienia przeglądarki pomija środkową warstwę.

Używaj jednej trasy, ustalając zamierzone zachowanie, a drugą dodaj tylko wtedy, gdy łańcuch jest konieczny. Dodatkowe przeskoki mogą dodać punkty awarii i odmienne relacje zaufania. Nie usuwają automatycznie identyfikujących plików cookie ani nie sprawiają, że każde połączenie aplikacji podąża tą samą trasą.

Powiązane artykuły