Provjerite HTTP proxy pomoću curla
Testom curla s vremenskim ograničenjem provjerite vezu s proxyjem, HTTPS tunel, status odgovora i pravila zaobilaženja bez izmjene globalnog proxyja uređaja.
Zamijenite 127.0.0.1:8080 krajnjom tačkom svoje usluge ili adresom sa liste HTTP proxyja i izvršite 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 daje pet sekundi za uspostavljanje veze te petnaest sekundi ukupno. Ne mijenja postavke proxyja preglednika i sistema.
Koristite stvarnu izvršnu datoteku curla ako ljuska postavlja curl kao alias za drugi program; curl --version identificira izdanje izrade. Ako samo sučelje zahtijeva TLS, koristite shemu URL-a proxyja navedenu u njegovoj dokumentaciji.
Pročitajte četiri rezultata, ne samo znak uspjeha
- Uspostavljena veza s izabranim 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 s očekivanim provjerama povjerenja.
- Odgovor odredišta primljen: pregledajte status i sadržaj u odnosu na rezultat potreban aplikaciji.
Čak i poslije ispravnog tunela odredište može vratiti 403 ili 429. curl može uspješno završiti i nakon HTTP odgovora s greškom. Zato zapišite i status odgovora i rezultat greške curla. TCP veza ili uspješan CONNECT sami po sebi nisu dovoljni.
Sažet ishod za višestruka 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, a http_code završni HTTP odgovor. remote_ip označava drugu stranu curlove veze, ne nezavisno mjerenje izlazne adrese proxyja. Na drugim sistemima zamijenite /dev/null ili zadržite tijelo odgovora.
U slučaju neuspjeha utvrdite korak uspostavljanja veze ili prijenosa koji je zakazao, pa uporedite isto odredište direktno ondje 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 oba puta upućuje na zajednički problem povjerenja. Uspješan direktan pristup uz odbijeni CONNECT upućuje na autentifikaciju ili pravila proxyja. Prije dijeljenja pregledajte detaljan izlaz jer može sadržavati identifikacijske informacije.
Zabilježite krajnju tačku, cilj i vremensku oznaku uz rezultat. Tako je dokumentirano šta je radilo za taj zahtjev; buduća dostupnost, privatnost i performanse pod opterećenjem traže zasebne dokaze.