Proxy debugowania traci widoczność, gdy łączy się firmowa VPN
W Twoim proxy nic się nie zmieniło. Wpis tunelu niesie własne ustawienia, zarządzany PAC może wrócić, a niektóre klienty w ogóle nie czytają proxy systemowego.
Narzędzie przechwytujące działa cały ranek, tunel się łączy, a ono milknie. Po rozłączeniu znów działa. Pierwsza myśl: VPN zepsuł proxy. Tymczasem w konfiguracji proxy nic się nie zmieniło. Zmieniło się to, którą konfigurację czytają teraz aplikacje: wpis tunelu może nieść własne ustawienia proxy, profil zarządzany może ponownie włączyć konfigurację automatyczną, a niektóre środowiska wykonawcze czytają tylko część tego, co oferuje system. Przeczytaj wartość dla danego połączenia, zanim tkniesz globalną.
Windows trzyma proxy dla każdego połączenia
W opcjach internetowych są dwie warstwy, które w oknie wyglądają identycznie. Ustawienia sieci lokalnej dotyczą zwykłego połączenia lokalnego, a wpis połączenia telefonicznego lub VPN trzyma własną kopię w HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections, zapisaną jako wartość binarna. Zapis znanych globalnych wartości rejestru nie aktualizuje tej kopii.
Dokładnie tak narzędzie działa poprawnie przed połączeniem i błędnie po nim, bez żadnej widocznej zmiany w ustawieniach. Okno, w które się wpatrywałeś, to panel sieci lokalnej. Był poprawny i nieistotny. Wpisem, którego Windows naprawdę używał, był ten utworzony dla tunelu.
Wspieranym sposobem zmiany jednego wpisu jest API opcji połączenia WinINET: wypełnij INTERNET_PER_CONN_OPTION_LIST nazwą połączenia, flagami, serwerem proxy i listą wyjątków, zastosuj, a następnie odśwież. Do szybkiego sprawdzenia otwórz okno ustawień samego wpisu tunelu i porównaj jego panel proxy z panelem sieci lokalnej; różnica zwykle jest oczywista, gdy już wiesz, gdzie patrzeć.
Zarządzany PAC może sam się włączyć z powrotem
W macOS skrypt automatycznej konfiguracji proxy i automatyczne wykrywanie proxy to właściwości usługi sieciowej, a nie komputera. Profil konfiguracyjny może ich wymagać, więc pojawiają się znowu po odznaczeniu, a każde żądanie trafia wtedy do proxy wybranego przez skrypt.
Sprawdź i, jeśli masz uprawnienia, wyłącz te dwa przełączniki dla usługi, która niesie ruch:
networksetup -setautoproxystate "Wi-Fi" off
networksetup -setproxyautodiscovery "Wi-Fi" off
scutil --proxy
Użyj prawdziwej nazwy usługi, a nie domysłu. Laptop z Wi-Fi i adapterem Ethernet USB ma dwie takie usługi, a ruch niesie tylko jedna. scutil --proxy wypisuje wartości bieżącej usługi głównej. Porównaj ten wynik z tym, co edytowałeś, zanim uznasz, że profil wygrał.
Skieruj narzędzie na prawdziwe źródło
Jeśli skrypt zawiera firmowe proxy, przeczytaj go i wpisz ten sam adres jako proxy zewnętrzne w narzędziu przechwytującym. Wtedy narzędzie przekazuje do prawdziwego źródła, czego oczekuje firmowe proxy, i pozostaje na ścieżce żądania, zamiast walczyć z polityką.
To ruch, który utrzymuje Cię przy debugowaniu, a nie przy przebudowywaniu konfiguracji.
Wepchnij proxy do tunelu
Klient oparty na OpenVPN może przyjąć opcje proxy, które działają po podniesieniu tunelu, co jest wygodne, gdy klient jest właścicielem tras:
dhcp-option HTTPPROXY 127.0.0.1:8888
dhcp-option HTTPSPROXY 127.0.0.1:8888
Użyją ich tylko klienty respektujące tę opcję, a ona wpisuje twój port nasłuchu na stałe do profilu. Traktuj to jako wygodę laboratoryjną, a nie standard wdrożenia, bo następne wysłanie profilu ją usunie.
Niektóre klienty nigdy nie czytają proxy systemowego
Firefox trzyma własne ustawienia proxy, dlatego czasem nadal przechwytuje, gdy przeglądarka korzystająca z proxy systemowego już nie. Starszy klient .NET, który nie rozumie konfiguracji automatycznej, łączy się bezpośrednio gdziekolwiek działa, więc strona wczytana przez wpis tunelu nadal może zawieść wewnątrz aplikacji.
Narzędzia sieciowe mają też własne przyczyny. Sesja FTP, która zawiesza się przez tunel lub tethering telefonu, to często problem trybu aktywnego i pasywnego negocjowanego przez klienta, i żadne ustawienie proxy tego nie zmieni.
Czytaj konfigurację, nie przełącznik
Pracuj w tej kolejności: własna wartość proxy wpisu tunelu, stan PAC i automatycznego wykrywania dla usługi, potem obsługa proxy przez samą aplikację. Zatrzymaj się na pierwszym, które różni się od twojego założenia.
Każdy przypadek tutaj to problem pierwszeństwa konfiguracji. Żaden nie jest tunelem psującym twoje narzędzie.