Testowanie proxy HTTP za pomocą curl
Sprawdź łączność z proxy, tunel HTTPS, status odpowiedzi i reguły omijania za pomocą testu curl z limitem czasu, bez zmiany globalnego proxy urządzenia.
Zastąp 127.0.0.1:8080 punktem końcowym swojej usługi lub adresem z listy proxy HTTP i wykonaj tę komendę dla nieszkodliwego celu HTTPS:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/Adres pętli zwrotnej oznacza punkt nasłuchu na twoim komputerze. Polecenie wybiera go jawnie, czyści listę omijania proxy w curl dla tego wywołania i daje pięć sekund na zestawienie połączenia oraz piętnaście sekund łącznie. Nie zmienia ustawień proxy przeglądarki ani systemu.
Użyj rzeczywistego pliku wykonywalnego curl, jeśli powłoka definiuje curl jako alias innego programu; curl --version identyfikuje kompilację. Jeśli sam punkt nasłuchu wymaga TLS, użyj schematu URL proxy podanego w jego dokumentacji.
Czytaj cztery wyniki zamiast jednego sygnału sukcesu
- Połączenie z wybranym proxy: adres i port są osiągalne.
- CONNECT zaakceptowany: proxy otworzyło tunel do celu HTTPS.
- Certyfikat celu zweryfikowany: TLS zakończył się z oczekiwanymi kontrolami zaufania.
- Odpowiedź celu odebrana: sprawdź jej status i zawartość pod kątem wyniku wymaganego przez aplikację.
Po działającym tunelu cel może zwrócić 403 lub 429. curl może też zakończyć się pomyślnie po odebraniu odpowiedzi z błędem HTTP, dlatego zapisuj zarówno status odpowiedzi, jak i wynik błędu curl. Samo połączenie TCP lub powodzenie CONNECT nie wystarcza.
Zwięzły wynik do powtarzanych porównań
W powłoce uniksowej odrzuć treść odpowiedzi i wyświetl status tunelu, status celu, drugą stronę połączenia i czas:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --silent --show-error --output /dev/null --write-out 'http=%{http_code} connect=%{http_connect} peer=%{remote_ip} total=%{time_total}\n' https://example.com/http_connect opisuje odpowiedź tunelu; http_code opisuje końcową odpowiedź HTTP. remote_ip jest drugą stroną połączenia curl, a nie niezależnym pomiarem adresu wyjściowego proxy. Na innych systemach zastąp /dev/null lub zachowaj treść odpowiedzi.
Jeśli test się nie powiedzie, ustal nieudany etap zestawiania połączenia lub przesyłania i porównaj ten sam cel bezpośrednio, jeśli taka trasa jest dozwolona:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/--noproxy '*' omija proxy. Błąd weryfikacji certyfikatu na obu trasach wskazuje na wspólny problem z zaufaniem; udane połączenie bezpośrednie przy odrzuconym CONNECT wskazuje na uwierzytelnianie lub politykę proxy. Przejrzyj szczegółowy wynik przed udostępnieniem, ponieważ może zawierać dane identyfikujące.
Zapisz punkt końcowy, cel i znacznik czasu wraz z wynikiem. Ustala to, co zadziałało dla tego żądania; przyszła dostępność, prywatność i wydajność pod obciążeniem wymagają osobnych dowodów.