Testirajte HTTP proxy pomoću curla
Vremenski ograničenim curl testom provjerite vezu s proxyjem, HTTPS tunel, status odgovora i pravila zaobilaženja bez promjene globalnog proxyja uređaja.
Zamijenite 127.0.0.1:8080 krajnjom tačkom svoje usluge ili adresom sa liste HTTP proxyja i pokrenite ovo prema bezopasnom HTTPS odredištu:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/Loopback adresa označava sučelje koje osluškuje na vašem računaru. Komanda ga izričito bira, prazni curlovu listu izuzetaka za ovaj poziv i dopušta pet sekundi za uspostavljanje veze te petnaest sekundi ukupno. Postavke proxyja preglednika i sistema ostaju nepromijenjene.
Koristite stvarnu izvršnu datoteku curla ako ljuska postavlja curl kao alias za drugi program; curl --version identificira verziju izrade. Ako samo sučelje zahtijeva TLS, koristite shemu URL-a proxyja navedenu u njegovoj dokumentaciji.
Čitajte četiri rezultata, a ne jedan znak uspjeha
- Veza s odabranim proxyjem: adresa i port su dostupni.
- CONNECT prihvaćen: proxy je otvorio tunel do HTTPS odredišta.
- Certifikat odredišta provjeren: TLS je dovršen uz očekivane provjere povjerenja.
- Odgovor odredišta primljen: provjerite status i sadržaj prema rezultatu koji je potreban aplikaciji.
Nakon ispravnog tunela odredište može vratiti 403 ili 429. curl može uspješno završiti i poslije HTTP odgovora s greškom, pa zabilježite i status odgovora i curlov rezultat greške. Sama TCP veza ili uspješan CONNECT nisu dovoljni.
Sažet rezultat za ponovljena poređenja
U ljusci nalik Unixu odbacite tijelo odgovora i ispišite status tunela, status odredišta, drugu stranu veze i proteklo vrijeme:
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 odgovor tunela; http_code opisuje konačni HTTP odgovor. remote_ip je druga strana curlove veze, a ne nezavisno mjerenje izlazne adrese proxyja. Na drugim sistemima zamijenite /dev/null ili zadržite tijelo odgovora.
Ako test ne uspije, pronađite neuspješan korak uspostavljanja veze ili prijenosa i uporedite isto odredište direktno tamo gdje je ta ruta dozvoljena:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/--noproxy '*' zaobilazi proxyje. Neuspješna provjera certifikata na obje rute ukazuje na zajednički problem povjerenja; uspješan direktan pristup uz odbijeni CONNECT ukazuje na autentifikaciju ili pravila proxyja. Pregledajte detaljan izlaz prije dijeljenja jer može sadržavati identifikacijske podatke.
Sačuvajte krajnju tačku, cilj i vremensku oznaku uz ishod. Time utvrđujete šta je radilo za taj zahtjev; buduća dostupnost, privatnost i performanse pod opterećenjem zahtijevaju zasebne dokaze.