Časové limity proxy v curl: najděte krok, který selhal
Odlište připojení k proxy, vyjednání tunelu, TLS a zaseknutou odpověď, aby časové limity curl pomohly určit příčinu.
V podrobném výstupu curl najděte poslední dokončenou operaci. „Připojeno k proxy, ale bez odpovědi CONNECT“ zužuje problém mnohem lépe než „proxy vypršel čas“.
Použijte požadavek s časovými limity a místní příklad nahraďte svou HTTP proxy; v seznamu HTTP proxy najdete další koncové body ke srovnání:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/--connect-timeout 5 stanovuje jeden společný časový rozpočet pro navázání spojení, včetně příslušných vyhledávání a úvodních vyjednání; nedává každé fázi pět sekund. --max-time 15 omezuje celou operaci včetně přenosu po navázání spojení.
| Kde se postup zastaví | Co prověřit dál |
|---|---|
| Žádné spojení s proxy | Překlad názvu proxy, naslouchající port, směrování a pravidla firewallu. |
| Proxy připojena; bez odpovědi tunelu | Zatížení proxy, vyjednávání autentizace, pravidla přístupu a dosažitelnost cíle z proxy. |
| Tunel přijat; TLS nedokončeno | Dosažitelnost cíle, vyjednávání TLS a spravované zachytávání provozu. |
| Hlavičky cíle dorazily; tělo se zastavilo | Chování původního serveru při přenosu, ukládání do vyrovnávací paměti u prostředníků a případné záměrné mlčení aplikace. |
Pořadí úvodních vyjednání popisuje jak CONNECT přenáší HTTPS. Zastavení poblíž rozpočtu na spojení ukazuje na navazování; pozdější zastavení na celkovém limitu ukazuje na neúplný přenos. Posuzujte posloupnost spolu s časem — samotný čas neurčí komponentu. Text logů se mezi sestaveními curl liší a otevřený TCP port nedokazuje funkčnost CONNECT.
Jednu stranu ponechte beze změny
Porovnejte stejný cíl přes povolenou přímou trasu:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/Pak porovnejte jiný neškodný cíl přes stejnou proxy. Pokud selže jen jeden, prozkoumejte jeho trasu nebo pravidla přístupu. Pokud se všechny zastaví ve stejném kroku navazování, prozkoumejte společnou cestu přes proxy. Uložte čas začátku, koncový bod, cíl a poslední dokončenou fázi; před sdílením logů odstraňte přihlašovací údaje, tokeny, cookies a soukromé názvy.
Když spojení zůstává otevřené bez užitečného postupu
Přenos souboru může kromě limitu navazování a celkové doby potřebovat práh nízké rychlosti:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 60 --speed-limit 100 --speed-time 20 https://example.com/Toto přeruší operaci, pokud setrvalá přenosová rychlost zůstane 20 sekund pod 100 bajty za sekundu; celkový limit zůstává 60 sekund. Hodnoty zvolte podle zátěže. Proud událostí může být v pořádku i během dlouhého ticha, takže pravidlo pro stahování jej může chybně přerušit.
Zvýšení všech limitů odkládá příznak. Okamžité opakované pokusy mohou přidat spojení na přetíženou cestu. Diagnostikujte několika promyšlenými srovnáními; pozdější pravidla opakování v aplikaci potřebují vlastní celkový rozpočet a posouzení, zda je opakování bezpečné.