Istek vremena proxyja u curlu: pronađite neuspjeli korak
Razdvojite povezivanje s proxyjem, pregovaranje tunela, TLS i zastali odgovor kako bi vremenska ograničenja curla pomogla u dijagnozi.
U detaljnom izlazu curla pronađite posljednju završenu operaciju. „Povezan s proxyjem, ali nema CONNECT odgovora“ mnogo bolje sužava problem nego „isteklo vrijeme proxyja“.
Koristite zahtjev s vremenskim ograničenjima i lokalni primjer zamijenite svojim HTTP proxyjem; na listi HTTP proxyja možete pronaći druge krajnje tačke za poređenje:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/--connect-timeout 5 daje uspostavljanju veze jedan zajednički vremenski budžet, uključujući odgovarajuće pretrage i rukovanja; ne daje svakoj fazi pet sekundi. --max-time 15 ograničava cijelu operaciju, uključujući prijenos nakon uspostavljanja veze.
| Gdje napredak staje | Šta zatim istražiti |
|---|---|
| Nema veze s proxyjem | Razrješavanje imena proxyja, port za osluškivanje, rutiranje i pravila zaštitnog zida. |
| Proxy povezan; nema odgovora za tunel | Opterećenje proxyja, pregovaranje autentifikacije, pravila pristupa i dostupnost odredišta iz proxyja. |
| Tunel prihvaćen; TLS nedovršen | Dostupnost odredišta, TLS pregovaranje i upravljano presretanje saobraćaja. |
| Zaglavlja odredišta stižu; tijelo staje | Ponašanje izvornog servera pri prijenosu, međuspremanje posrednika i moguća namjerna tišina aplikacije. |
Redoslijed rukovanja objašnjava kako CONNECT prenosi HTTPS. Zaustavljanje blizu budžeta za vezu ukazuje na uspostavljanje; kasnije zaustavljanje na ukupnom ograničenju ukazuje na nepotpun prijenos. Posmatrajte redoslijed zajedno s vremenom — samo vrijeme ne određuje komponentu. Tekst dnevnika razlikuje se među izdanjima curla, a otvoren TCP port ne dokazuje da CONNECT radi.
Jednu stranu ostavite nepromijenjenu
Uporedite isto odredište preko dozvoljene direktne rute:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/Zatim uporedite drugo bezopasno odredište kroz isti proxy. Ako samo jedno ne uspije, istražite njegovu rutu ili pravila pristupa. Ako sva staju u istom koraku uspostavljanja, istražite zajednički put kroz proxy. Sačuvajte vrijeme početka, krajnju tačku, odredište i posljednju završenu fazu; uklonite pristupne podatke, tokene, kolačiće i privatna imena prije dijeljenja dnevnika.
Kada veza ostaje otvorena bez korisnog napretka
Prijenosu datoteke može trebati prag male brzine uz ograničenja uspostavljanja i ukupnog trajanja:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 60 --speed-limit 100 --speed-time 20 https://example.com/Ovo prekida operaciju ako održavana brzina prijenosa ostane ispod 100 bajtova u sekundi tokom 20 sekundi, zadržavajući ukupno ograničenje od 60 sekundi. Vrijednosti birajte prema opterećenju. Tok događaja može biti ispravan tokom dugih tihih perioda, pa ga pravilo za preuzimanje može pogrešno prekinuti.
Povećavanje svih ograničenja odgađa simptom. Neposredni ponovljeni pokušaji mogu dodati veze preopterećenom putu. Dijagnosticirajte uz nekoliko promišljenih poređenja; kasnija politika ponavljanja aplikacije zahtijeva vlastiti ukupni budžet i procjenu je li ponavljanje operacije sigurno.