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

  1. Połączenie z wybranym proxy: adres i port są osiągalne.
  2. CONNECT zaakceptowany: proxy otworzyło tunel do celu HTTPS.
  3. Certyfikat celu zweryfikowany: TLS zakończył się z oczekiwanymi kontrolami zaufania.
  4. 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.

Powiązane artykuły