Išsamioje curl išvestyje raskite paskutinį užbaigtą veiksmą. „Prisijungta prie tarpinio serverio, bet nėra CONNECT atsakymo“ problemą susiaurina daug labiau nei „baigėsi tarpinio serverio laukimo laikas“.

Naudokite užklausą su laiko limitais, vietinį pavyzdį pakeitę savo HTTP tarpiniu serveriu; iš HTTP tarpinių serverių sąrašo galite pasirinkti kitus galinius taškus palyginimui:

curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/

--connect-timeout 5 skiria vieną bendrą laiko biudžetą ryšiui užmegzti, įskaitant reikalingas paieškas ir pasisveikinimus; kiekvienam etapui neskiriama po penkias sekundes. --max-time 15 riboja visą veiksmą, taip pat perdavimą užmezgus ryšį.

Kur sustoja eigaKą tirti toliau
Nėra ryšio su tarpiniu serveriuTarpinio serverio vardo nustatymą, klausymo prievadą, maršrutizavimą ir užkardos taisykles.
Tarpinis serveris prijungtas; tunelio atsakymo nėraServerio apkrovą, autentifikavimo derinimą, prieigos taisykles ir paskirties pasiekiamumą iš tarpinio serverio.
Tunelis priimtas; TLS neužbaigtasPaskirties pasiekiamumą, TLS derinimą ir administruojamą srauto perėmimą.
Paskirties antraštės gautos; turinys sustojaPradinio serverio perdavimo elgseną, buferizavimą pas tarpininkus ir galimą tyčinę programos tylą.

Pasisveikinimų eilę aiškina kaip CONNECT perduoda HTTPS. Sustojimas ties ryšio laiko biudžetu rodo užmezgimo etapą; vėlesnis sustojimas ties bendru limitu rodo neužbaigtą perdavimą. Seką vertinkite kartu su laiku — vien laikas komponento nenustato. Žurnalų formuluotės skiriasi tarp curl komponuočių, o atviras TCP prievadas neįrodo, kad CONNECT veikia.

Vieną pusę palikite pastovią

Palyginkite tą pačią paskirtį per leidžiamą tiesioginį maršrutą:

curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/

Tada per tą patį tarpinį serverį palyginkite kitą nekenksmingą paskirtį. Jei nepavyksta tik viena, tirkite jos maršrutą ar prieigos taisykles. Jei visos sustoja tame pačiame užmezgimo žingsnyje, tirkite bendrą tarpinio serverio kelią. Išsaugokite pradžios laiką, galinį tašką, paskirtį ir paskutinį užbaigtą etapą; prieš dalydamiesi žurnalais pašalinkite prisijungimo duomenis, žetonus, slapukus ir privačius vardus.

Kai ryšys lieka atviras be naudingos pažangos

Failo perdavimui be užmezgimo ir bendro laiko ribų gali reikėti mažo greičio slenksčio:

curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 60 --speed-limit 100 --speed-time 20 https://example.com/

Tai nutraukia veiksmą, jei pastovus perdavimo greitis 20 sekundžių lieka mažesnis nei 100 baitų per sekundę, kartu paliekant bendrą 60 sekundžių limitą. Reikšmes rinkitės pagal užduotį. Įvykių srautas gali būti sveikas ilgai tylėdamas, todėl atsisiuntimo taisyklė gali jį klaidingai nutraukti.

Padidinus visas ribas simptomas atidedamas. Skubūs pakartotiniai bandymai gali pridėti ryšių prie perkrauto kelio. Diagnozuokite keliais apgalvotais palyginimais; vėlesnei programos bandymų kartojimo tvarkai reikia savo bendro laiko biudžeto ir įvertinti, ar veiksmą saugu kartoti.

Susiję straipsniai