Hitta den senast slutförda åtgärden i curls utförliga utskrift. ”Ansluten till proxyn, men inget CONNECT-svar” avgränsar problemet mycket mer än ”proxyns tidsgräns överskreds”.

Använd en begäran med tidsgränser och ersätt det lokala exemplet med din HTTP-proxy; listan över HTTP-proxyer kan ge alternativa ändpunkter att jämföra:

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

--connect-timeout 5 ger anslutningsetableringen en gemensam tidsbudget, inklusive tillämpliga uppslag och handskakningar; varje steg får inte fem sekunder. --max-time 15 begränsar hela åtgärden, inklusive överföringstiden efter etableringen.

Var förloppet stannarUndersök härnäst
Ingen anslutning till proxynProxyns namnuppslagning, lyssningsport, routning och brandväggsregler.
Proxyn ansluten; inget tunnelsvarProxybelastning, autentiseringsförhandling, åtkomstregler och målets nåbarhet från proxyn.
Tunneln godkänd; TLS ofullständigtMålets nåbarhet, TLS-förhandling och administrerad avlyssning.
Målets svarshuvuden kommer; kroppen stannarUrsprungsserverns överföringsbeteende, buffring hos mellanhänder och om programmet avsiktligt är tyst.

Se hur CONNECT bär HTTPS för handskakningarnas ordning. Ett stopp nära anslutningsbudgeten pekar mot etableringen; ett senare stopp vid totalgränsen pekar mot en ofullständig överföring. Använd förloppet tillsammans med tiderna – tiden ensam identifierar inte komponenten. Loggtexter varierar mellan curl-byggen och en öppen TCP-port bevisar inte att CONNECT fungerar.

Håll ena sidan oförändrad

Jämför samma mål via en tillåten direktväg:

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

Jämför sedan ett annat ofarligt mål genom samma proxy. Om bara ett mål misslyckas, undersök den vägen eller målets åtkomstregler. Om alla mål stannar vid samma etableringssteg, undersök den gemensamma proxyvägen. Spara starttid, ändpunkt, mål och senast slutförda steg; ta bort inloggningsuppgifter, token, kakor och privata namn innan loggar delas.

När anslutningen förblir öppen utan användbara framsteg

En filöverföring kan behöva en gräns för låg hastighet utöver etablerings- och totalgränser:

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

Detta avbryter när den ihållande överföringshastigheten ligger under 100 byte per sekund i 20 sekunder och behåller samtidigt en totalgräns på 60 sekunder. Välj värden efter arbetslasten. En händelseström kan fungera väl under långa tysta perioder, så en nedladdningsregel kan felaktigt avbryta den.

Att höja alla gränser skjuter upp symtomet. Omedelbara upprepade försök kan lägga till anslutningar på en överbelastad väg. Diagnostisera med några genomtänkta jämförelser; en senare återförsökspolicy i programmet behöver en egen totalbudget och måste beakta om åtgärden är säker att upprepa.

Relaterade artiklar