curl starpniekservera noildzes: atrodiet neveiksmīgo soli
Atšķiriet savienojumu ar starpniekserveri, tuneļa sarunas, TLS un apstājušos atbildi, lai curl laika ierobežojumi palīdzētu diagnosticēt problēmu.
curl detalizētajā izvadē atrodiet pēdējo pabeigto darbību. “Savienots ar starpniekserveri, bet nav CONNECT atbildes” sašaurina problēmu daudz vairāk nekā “starpniekservera noildze”.
Izmantojiet pieprasījumu ar laika ierobežojumiem, vietējo piemēru aizstājot ar savu HTTP starpniekserveri; no HTTP starpniekserveru saraksta var izvēlēties citus galapunktus salīdzināšanai:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/--connect-timeout 5 dod vienu kopīgu laika budžetu savienojuma izveidei, ieskaitot attiecīgos uzmeklējumus un rokasspiedienus; katram posmam netiek piešķirtas piecas sekundes. --max-time 15 ierobežo visu darbību, ieskaitot pārsūtīšanu pēc izveides.
| Kur apstājas virzība | Ko pārbaudīt tālāk |
|---|---|
| Nav savienojuma ar starpniekserveri | Starpniekservera nosaukuma atrisināšanu, klausīšanās portu, maršrutēšanu un ugunsmūra politiku. |
| Starpniekserveris savienots; nav tuneļa atbildes | Starpniekservera slodzi, autentifikācijas sarunas, piekļuves politiku un mērķa sasniedzamību no starpniekservera. |
| Tunelis pieņemts; TLS nav pabeigts | Mērķa sasniedzamību, TLS sarunas un pārvaldītu datplūsmas pārtveršanu. |
| Mērķa galvenes saņemtas; saturs apstājas | Izcelsmes servera pārsūtīšanas darbību, starpnieku buferēšanu un iespējamu apzinātu lietotnes klusumu. |
Rokasspiedienu secību skaidro kā CONNECT pārnes HTTPS. Apstāšanās tuvu savienojuma budžetam norāda uz izveidi; vēlāka apstāšanās pie kopējā limita norāda uz nepabeigtu pārsūtīšanu. Vērtējiet secību kopā ar laiku — laiks viens pats komponentu nenosaka. Žurnālu formulējumi atšķiras starp curl būvējumiem, un atvērts TCP ports nepierāda CONNECT darbību.
Vienu pusi atstājiet nemainīgu
Salīdziniet to pašu mērķi pa atļautu tiešo maršrutu:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/Tad pa to pašu starpniekserveri salīdziniet citu nekaitīgu mērķi. Ja neizdodas tikai viens, pētiet tā maršrutu vai piekļuves politiku. Ja visi apstājas vienā izveides solī, pētiet kopīgo starpniekservera ceļu. Saglabājiet sākuma laiku, galapunktu, mērķi un pēdējo pabeigto posmu; pirms žurnālu kopīgošanas izņemiet akreditācijas datus, marķierus, sīkdatnes un privātos nosaukumus.
Kad savienojums paliek atvērts bez lietderīgas virzības
Faila pārsūtīšanai papildus izveides un kopējā laika ierobežojumiem var vajadzēt maza ātruma slieksni:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 60 --speed-limit 100 --speed-time 20 https://example.com/Tas pārtrauc darbību, ja pastāvīgais pārsūtīšanas ātrums 20 sekundes paliek zem 100 baitiem sekundē, vienlaikus saglabājot kopējo 60 sekunžu limitu. Vērtības izvēlieties pēc darba slodzes. Notikumu straume var būt vesela garos klusuma periodos, tāpēc lejupielādes noteikums var to kļūdaini pārtraukt.
Visu limitu palielināšana atliek simptomu. Tūlītēji atkārtoti mēģinājumi var pievienot savienojumus pārslogotam ceļam. Diagnosticējiet ar dažiem pārdomātiem salīdzinājumiem; vēlākai lietotnes atkārtošanas politikai vajag savu kopējo budžetu un novērtējumu, vai darbību droši atkārtot.